server { listen 80; server_name opencloud.novicelab.io; return 301 https://$host$request_uri; } server { listen 443 ssl; # http2; server_name opencloud.novicelab.io; ssl_certificate /etc/letsencrypt/live/novicelab.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/novicelab.io/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_session_cache shared:SSL:10m; # Security headers add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; client_max_body_size 10M; # Disable buffering - essential for SSE proxy_buffering off; proxy_request_buffering off; # Extend timeouts for long connections proxy_read_timeout 3600s; proxy_send_timeout 3600s; keepalive_requests 100000; keepalive_timeout 5m; http2_max_concurrent_streams 512; resolver 127.0.0.11 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; # set $opencloud_backend 10.0.0.251:9200; # Prevent nginx from trying other upstreams proxy_next_upstream off; location / { # Pass all other requests to CouchDB proxy_pass http://10.0.0.251:9200; #proxy_pass http://$opencloud_backend/; 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; # Headers for WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }