server { client_max_body_size 525M; listen 80; server_name vault.{{ domain }}; location / { return 301 https://$host$request_uri; } location ^~ /.well-known/acme-challenge/ { alias /var/www/html/.well-known/acme-challenge/; default_type "text/plain"; allow all; } } server { client_max_body_size 525M; listen 443 ssl http2; server_name vault.{{ domain }}; ssl_certificate /etc/nginx/placeholder.crt; ssl_certificate_key /etc/nginx/placeholder.key; # Main application location / { proxy_pass http://127.0.0.1:3071; 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-Port 443; # WebSocket support for live sync proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # WebSocket notifications endpoint location /notifications/hub { proxy_pass http://127.0.0.1:3072; 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_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /notifications/hub/negotiate { proxy_pass http://127.0.0.1:3071; 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; } location ^~ /.well-known/acme-challenge/ { alias /var/www/html/.well-known/acme-challenge/; default_type "text/plain"; allow all; } }