Nginx 反向代理的常见坑
Host 头、X-Forwarded-* 与 WebSocket 升级。
一、Host 头没透传
proxy_pass http://127.0.0.1:3000 默认会把 Host 设成上游地址。后端据此拼出来的绝对 URL 就成了内网地址——sitemap、robots、邮件里的链接全会中招。
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;
二、X-Forwarded-* 的信任边界
这些头是客户端可伪造的。只有在你自己的反代里覆盖写入才可信,应用层要配置可信代理列表,不能无条件采信。
三、WebSocket 升级
少了这两行,握手会 400:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
四、缓冲导致 SSE 不实时
流式响应要关缓冲,否则内容会被攒着一次性下发。
proxy_buffering off;
上一篇Docker 镜像瘦身实践
下一篇暂无更多文章
评论0





暂无评论,期待您的发言...