forked from CCCHH/ansible-infra
		
	
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
| # also see here:
 | |
| # - https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/
 | |
| # - https://nginx.org/en/docs/http/ngx_http_realip_module.html
 | |
| server {
 | |
|     # Listen on a custom port for the proxy protocol.
 | |
|     listen 8443 ssl http2 proxy_protocol;
 | |
|     # Make use of the ngx_http_realip_module to set the $remote_addr and
 | |
|     # $remote_port to the client address and client port, when using proxy
 | |
|     # protocol.
 | |
|     # First set our proxy protocol proxy as trusted.
 | |
|     set_real_ip_from {{ nextcloud__proxy_protocol_reverse_proxy_ip }};
 | |
|     # Then tell the realip_module to get the addreses from the proxy protocol
 | |
|     # header.
 | |
|     real_ip_header proxy_protocol;
 | |
| 
 | |
|     # This should work, but isn't needed for now.
 | |
|     # # Still listen for https on 443 as usual.
 | |
|     # listen 443 ssl http2;
 | |
|     # #listen [::]:443 ssl http2;
 | |
| 
 | |
|     server_name {{ nextcloud__fqdn }};
 | |
| 
 | |
|     ssl_certificate /etc/letsencrypt/live/{{ nextcloud__fqdn }}/fullchain.pem;
 | |
|     ssl_certificate_key /etc/letsencrypt/live/{{ nextcloud__fqdn }}/privkey.pem;
 | |
|     # verify chain of trust of OCSP response using Root CA and Intermediate certs
 | |
|     ssl_trusted_certificate /etc/letsencrypt/live/{{ nextcloud__fqdn }}/chain.pem;
 | |
| 
 | |
|     # replace with the IP address of your resolver
 | |
|     resolver 1.1.1.1;
 | |
| 
 | |
|     # allow uploads of any size
 | |
|     client_max_body_size 0;
 | |
| 
 | |
|     location /.well-known/carddav {
 | |
|         # HSTS (ngx_http_headers_module is required) (63072000 seconds)
 | |
|         add_header Strict-Transport-Security "max-age=63072000" always;
 | |
| 
 | |
|         return 301 $scheme://$host/remote.php/dav;
 | |
|     }
 | |
| 
 | |
|     location /.well-known/caldav {
 | |
|         # HSTS (ngx_http_headers_module is required) (63072000 seconds)
 | |
|         add_header Strict-Transport-Security "max-age=63072000" always;
 | |
| 
 | |
|         return 301 $scheme://$host/remote.php/dav;
 | |
|     }
 | |
| 
 | |
|     location / {
 | |
|         proxy_set_header Host $host;
 | |
|         # This is https in any case.
 | |
|         proxy_set_header X-Forwarded-Proto https;
 | |
|         proxy_set_header X-Real-IP $remote_addr;
 | |
|         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 | |
| 
 | |
|         # HSTS (ngx_http_headers_module is required) (63072000 seconds)
 | |
|         add_header Strict-Transport-Security "max-age=63072000" always;
 | |
| 
 | |
|         add_header Front-End-Https on;
 | |
|         proxy_pass http://127.0.0.1:8080;
 | |
|     }
 | |
| }
 |