52 lines
1.6 KiB
Django/Jinja
52 lines
1.6 KiB
Django/Jinja
# {{ ansible_managed }}
|
|
{% if cloud_nginx_tls | default(false) %}
|
|
server {
|
|
listen 80;
|
|
listen [::]:80;
|
|
server_name {{ item.server_name }};
|
|
# ACME http-01 renewals keep working over plain http
|
|
location /.well-known/acme-challenge/ { root /var/www/letsencrypt; }
|
|
location / { return 301 https://$host$request_uri; }
|
|
}
|
|
{% endif %}
|
|
|
|
server {
|
|
{% if cloud_nginx_tls | default(false) %}
|
|
listen 443 ssl;
|
|
listen [::]:443 ssl;
|
|
http2 on;
|
|
ssl_certificate /etc/letsencrypt/live/{{ item.server_name }}/fullchain.pem;
|
|
ssl_certificate_key /etc/letsencrypt/live/{{ item.server_name }}/privkey.pem;
|
|
{% else %}
|
|
listen 80;
|
|
listen [::]:80;
|
|
{% endif %}
|
|
server_name {{ item.server_name }};
|
|
|
|
client_max_body_size {{ item.max_body | default('512m') }};
|
|
|
|
{% if item.root is defined %}
|
|
root {{ item.root }};
|
|
index index.html index.htm;
|
|
{% else %}
|
|
location / {
|
|
proxy_pass http://127.0.0.1:{{ item.port }};
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header X-Forwarded-Host $host;
|
|
proxy_read_timeout 300s;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
}
|
|
{% endif %}
|
|
{% if item.name == 'nextcloud' %}
|
|
|
|
# Nextcloud service discovery
|
|
location = /.well-known/carddav { return 301 /remote.php/dav/; }
|
|
location = /.well-known/caldav { return 301 /remote.php/dav/; }
|
|
{% endif %}
|
|
}
|