ansible-edda/playbooks/files/services/deploy/lrproxy/nginx-conf.d/cloud.thenineworlds.net.conf

73 lines
2.2 KiB
Plaintext

server {
listen [::]:80;
listen 80;
server_name cloud.thenineworlds.net;
location ^~ /.well-known {
allow all;
root /var/www/html;
}
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen [::]:8443 ssl proxy_protocol;
listen 8443 ssl proxy_protocol;
server_name cloud.thenineworlds.net;
ssl_certificate /etc/letsencrypt/live/cloud.thenineworlds.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.thenineworlds.net/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/cloud.thenineworlds.net/chain.pem;
set_real_ip_from {{ services_all_services.rproxy.inet_address }};
set_real_ip_from {{ services_all_services.rproxy.inet6_address }};
set_real_ip_from {{ services_all_services.lrproxy.inet_address }};
set_real_ip_from {{ services_all_services.lrproxy.inet6_address }};
real_ip_header proxy_protocol;
# Values copied and adjusted from
# https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html.
client_max_body_size 0;
client_body_timeout 3600s;
client_body_buffer_size 512k;
# Otherwise downloads are limited to 1 GB
# https://docs.nextcloud.com/server/stable/admin_manual/configuration_files/big_file_upload_configuration.html
proxy_buffering off;
# Redirect rules copied from
# https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html.
location ^~ /.well-known {
location = /.well-known/webfinger {
return 301 $scheme://$host:443/index.php$uri;
}
location = /.well-known/nodeinfo {
return 301 $scheme://$host:443/index.php$uri;
}
location = /.well-known/carddav {
return 301 $scheme://$host:443/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host:443/remote.php/dav;
}
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://pod-cloud;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}