Fix Connection header: only send 'upgrade' for WebSocket requests
Some checks failed
Deploy Fly.io Proxy / deploy (push) Failing after 1m35s
Some checks failed
Deploy Fly.io Proxy / deploy (push) Failing after 1m35s
Was sending Connection: upgrade on every proxied request, which is semantically wrong for normal HTTP traffic. Use a map to conditionally send 'upgrade' only when the client requests a WebSocket switch, 'close' otherwise. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
1c0ee099fb
commit
54b1cee950
1 changed files with 10 additions and 2 deletions
|
|
@ -52,6 +52,14 @@ http {
|
|||
resolver 100.100.100.100 valid=30s;
|
||||
resolver_timeout 5s;
|
||||
|
||||
# WebSocket-aware Connection header. Only send "upgrade" when the client
|
||||
# actually requests a protocol switch; otherwise "close" (the HTTP/1.1
|
||||
# default when keepalive pooling is not available).
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default close;
|
||||
websocket upgrade;
|
||||
}
|
||||
|
||||
# --- docs.eblu.me (static site) ---
|
||||
server {
|
||||
listen 8080;
|
||||
|
|
@ -192,7 +200,7 @@ http {
|
|||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
}
|
||||
|
||||
# Cache release artifact downloads — immutable files keyed by tag+filename.
|
||||
|
|
@ -248,7 +256,7 @@ http {
|
|||
# WebSocket support (Forgejo uses it for live updates)
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
|
||||
add_header X-Clacks-Overhead "GNU Terry Pratchett" always;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue