1
1
mirror of https://gitlab.archlinux.org/archlinux/infrastructure.git synced 2025-01-18 08:06:16 +01:00
infrastructure/roles/archweb/templates/nginx.d.conf.j2
Giancarlo Razzolini cc3cc143ac
roles/archweb: Change the nginx template to handle the includes and rework the alternate domains
Changed the nginx template to handle includes and also reworked the way the dict is used, by using
the dict2items filter on the template directly. We also have create a custom template for ipxe.archlinux.org
using weaker ciphers.
2019-12-20 12:32:13 -03:00

154 lines
4.0 KiB
Django/Jinja

upstream archweb {
server unix:///run/uwsgi/archweb.sock;
}
{% if archweb_domains_templates -%}
{% for domain in archweb_domains_templates | dict2items(key_name='domain_name', value_name='template_name') %}
{% include domain['template_name'] %}
{% endfor %}
{%- endif %}
{% if archweb_domains_redirects %}
{% for domain in archweb_domains_redirects | dict2items(key_name='domain', value_name='redirect') %}
server {
listen 80;
listen [::]:80;
server_name {{ domain['domain'] }};
access_log /var/log/nginx/{{ archweb_domain }}/access.log reduced;
error_log /var/log/nginx/{{ archweb_domain }}/error.log;
include snippets/letsencrypt.conf;
location / {
access_log off;
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name {{ domain['domain'] }};
access_log /var/log/nginx/{{ archweb_domain }}/access.log reduced;
error_log /var/log/nginx/{{ archweb_domain }}/error.log;
ssl_certificate /etc/letsencrypt/live/{{ archweb_domain }}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{{ archweb_domain }}/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/{{ archweb_domain }}/chain.pem;
location / {
access_log off;
return 301 https://{{ archweb_domain }}{{ domain['redirect']|default('$request_uri') }};
}
}
{% endfor %}
server {
{% else %}
server {
{% endif %}
listen 80;
listen [::]:80;
server_name {{ archweb_domain }};
access_log /var/log/nginx/{{ archweb_domain }}/access.log reduced;
error_log /var/log/nginx/{{ archweb_domain }}/error.log;
include snippets/letsencrypt.conf;
location /check_network_status.txt {
access_log off;
add_header Cache-Control "max-age=0, must-revalidate";
return 200 'NetworkManager is online';
}
location / {
access_log off;
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name {{ archweb_domain }};
access_log /var/log/nginx/{{ archweb_domain }}/access.log reduced;
error_log /var/log/nginx/{{ archweb_domain }}/error.log;
ssl_certificate /etc/letsencrypt/live/{{ archweb_domain }}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{{ archweb_domain }}/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/{{ archweb_domain }}/chain.pem;
location /.well-known/matrix/server {
add_header Content-Type application/json;
return 200 '{"m.server": "{{ matrix_domain }}:443"}';
}
location /robots.txt {
alias {{ archweb_dir }}/archlinux.org/robots.txt;
}
location /humans.txt {
alias {{ archweb_dir }}/archlinux.org/humans.txt;
}
location /google7827eadf026b4a87.html {
alias {{ archweb_dir }}/archlinux.org/google7827eadf026b4a87.html;
}
location /BingSiteAuth.xml {
alias {{ archweb_dir }}/archlinux.org/BingSiteAuth.xml;
}
location /favicon.ico {
alias {{ archweb_dir }}/collected_static/favicon.ico;
}
location /pacman {
alias {{ archweb_dir }}/archlinux.org/pacman/;
}
location /netcfg {
alias {{ archweb_dir }}/archlinux.org/netcfg/;
}
location /logos {
alias {{ archweb_dir }}/archlinux.org/logos/;
}
location ~ ^/iso/(.*\.(iso|img|tar\.gz|sfs)$) {
deny all;
}
location /iso {
alias {{ archweb_rsync_iso_dir }};
}
# Cache django's css, js and png files.
location /static {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
alias {{ archweb_dir }}/collected_static;
}
location /img {
alias {{ archweb_dir }}/media/img;
}
location /retro {
alias {{ archweb_retro_dir }};
}
location / {
access_log /var/log/nginx/{{ archweb_domain }}/access.log main;
include uwsgi_params;
uwsgi_pass archweb;
}
}