@@ -14,13 +14,22 @@ http {
1414 tcp_nodelay on;
1515 keepalive_timeout 65 ;
1616
17+ # Automatically sets Connection header based on whether it's a WebSocket request
18+ map $http_upgrade $connection_upgrade {
19+ default upgrade;
20+ '' close;
21+ }
22+
1723 # Trust proxy headers for proper redirects
1824 map $http_x_forwarded_proto $redirect_scheme {
1925 default $scheme ;
2026 https https;
2127 http http ;
2228 }
2329
30+ # === Client body size (for file uploads) ===
31+ client_max_body_size CLIENT_MAX_BODY_SIZE_PLACEHOLDER;
32+
2433 # Use container cache directories
2534 client_body_temp_path /var/cache/nginx/client_temp;
2635 proxy_temp_path /var/cache/nginx/proxy_temp;
@@ -38,6 +47,23 @@ http {
3847 # Force relative redirects (don't include scheme/host/port)
3948 absolute_redirect off;
4049
50+ # === Proxy buffering (configurable for streaming vs caching) ===
51+ proxy_buffering PROXY_BUFFERING_PLACEHOLDER;
52+ proxy_request_buffering PROXY_REQUEST_BUFFERING_PLACEHOLDER;
53+
54+ # === Extended timeouts for streaming/WebSocket/long-polling ===
55+ proxy_connect_timeout PROXY_CONNECT_TIMEOUT_PLACEHOLDER;
56+ proxy_send_timeout PROXY_SEND_TIMEOUT_PLACEHOLDER;
57+ proxy_read_timeout PROXY_READ_TIMEOUT_PLACEHOLDER;
58+
59+ # === Buffer sizes (used when buffering is enabled) ===
60+ proxy_buffer_size 128k ;
61+ proxy_buffers 4 256k ;
62+ proxy_busy_buffers_size 256k ;
63+
64+ # === SSE/EventSource support ===
65+ proxy_set_header X-Accel-Buffering no;
66+
4167 # Custom error pages
4268 error_page 403 /403 .html;
4369 location = /403 .html {
@@ -88,23 +114,37 @@ http {
88114 set $backend_upstream "BACKEND_HOST_PLACEHOLDER:BACKEND_PORT_PLACEHOLDER" ;
89115 proxy_pass http ://$backend_upstream ;
90116 proxy_http_version 1.1;
117+
118+ # === Standard proxy headers ===
91119 proxy_set_header Host $host ;
92120 proxy_set_header X-Real-IP $remote_addr ;
93121 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
122+ proxy_set_header X-Forwarded-Proto $scheme ;
123+ proxy_set_header X-Forwarded-Host $host ;
124+ proxy_set_header X-Forwarded-Port $server_port ;
125+
126+ # === WebSocket support (uses map for correct behavior) ===
94127 proxy_set_header Upgrade $http_upgrade ;
95- proxy_set_header Connection "upgrade" ;
128+ proxy_set_header Connection $connection_upgrade ;
96129 }
97130
98131 # Allow specific file extensions if configured (optional static assets)
99132 location ~ * \.(ALLOWED_EXTENSIONS_PLACEHOLDER)$ {
100133 set $backend_upstream "BACKEND_HOST_PLACEHOLDER:BACKEND_PORT_PLACEHOLDER" ;
101134 proxy_pass http ://$backend_upstream ;
102135 proxy_http_version 1.1;
136+
137+ # === Standard proxy headers ===
103138 proxy_set_header Host $host ;
104139 proxy_set_header X-Real-IP $remote_addr ;
105140 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
141+ proxy_set_header X-Forwarded-Proto $scheme ;
142+ proxy_set_header X-Forwarded-Host $host ;
143+ proxy_set_header X-Forwarded-Port $server_port ;
144+
145+ # === WebSocket support (uses map for correct behavior) ===
106146 proxy_set_header Upgrade $http_upgrade ;
107- proxy_set_header Connection "upgrade" ;
147+ proxy_set_header Connection $connection_upgrade ;
108148 }
109149
110150 # Main location - authentication logic will be inserted here
@@ -113,12 +153,24 @@ AUTH_CHECK_BLOCK_PLACEHOLDER
113153 set $backend_upstream "BACKEND_HOST_PLACEHOLDER:BACKEND_PORT_PLACEHOLDER" ;
114154 proxy_pass http ://$backend_upstream ;
115155 proxy_http_version 1.1;
156+
157+ # === Standard proxy headers ===
116158 proxy_set_header Host $host ;
117159 proxy_set_header X-Real-IP $remote_addr ;
118160 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
161+ proxy_set_header X-Forwarded-Proto $scheme ;
162+ proxy_set_header X-Forwarded-Host $host ;
163+ proxy_set_header X-Forwarded-Port $server_port ;
164+
165+ # === WebSocket support (uses map for correct behavior) ===
119166 proxy_set_header Upgrade $http_upgrade ;
120- proxy_set_header Connection "upgrade" ;
167+ proxy_set_header Connection $connection_upgrade ;
168+
121169 proxy_set_header Cookie $http_cookie ;
170+
171+ # === Handle redirects from backend ===
172+ proxy_redirect http ://$backend_upstream / /;
173+ proxy_redirect https://$backend_upstream / /;
122174 }
123175 }
124176}
0 commit comments