手把手配置 Nginx 反向代理
摘要
从最小 Nginx 反向代理配置讲起,逐步覆盖多后端负载均衡、WebSocket 透传、超时缓冲、缓存、SSL 终止、限流安全头与日志排障。
手把手配置 Nginx 反向代理
引言
Nginx 是生产环境里最常见的反向代理。它轻量、稳定,既能做入口网关,又能做负载均衡与缓存。本文从最小可用配置讲起,逐步加上 WebSocket、超时、缓存、SSL、限流与常见排障,给你一份能直接落地的参考。
一、最小可用配置
proxy_pass 指向后端地址。几个 proxy_set_header 把真实客户端信息带给后端——否则后端日志里看到的连接来源全是 Nginx 自己,出问题时无法定位用户。
二、多后端 + 负载均衡
max_fails/fail_timeout 实现简单的被动健康检查:某后端连续失败达到阈值就临时摘掉。keepalive 复用连接能显著降低长尾延迟。
三、支持 WebSocket
长连接必须透传 Upgrade 头:
四、超时与缓冲
读超时过短会导致长请求被掐断;过大又会拖住 worker。按业务 P99 响应时间权衡。
五、缓存静态与加速
用 X-Cache-Status 头可以快速判断命中与否,方便排障。
六、SSL 终止
在 Nginx 统一做 HTTPS,后端只跑 HTTP:
七、限流与安全头
八、日志与排障
常见 502 成因:
后端没起来:先
curl http://127.0.0.1:3000直连验证。Host 头不对:后端按域名路由时
proxy_set_header Host必须正确。UNIX socket 权限:用
proxy_pass http://unix:/run/app.sock;时注意权限。后端响应超时:调大
proxy_read_timeout。
小结
反向代理的坑大多集中在“头信息、超时、缓存”三处。把上面这套配齐,90% 的场景都能稳。下一篇我们换 HAProxy,看专业负载均衡器怎么做健康检查与高可用。
延伸
Nginx《Admin Guide: HTTP Load Balancing》
下一篇:《用 HAProxy 做负载均衡与高可用》
