ENGINEERING PLAYBOOK
Nginx 反向代理配置与验证
反向代理配置要区分客户端到 Nginx 和 Nginx 到上游两段连接。URI 拼接、Host 传递和可信代理边界应通过实际请求验证。
适用人群:需要定位 Nginx 502、上游连接和转发头问题的服务维护人员
排查路径
- 明确公开入口、上游地址和 URI 映射。
- 配置必要请求头并限制可信来源。
- 分别设置连接、发送和读取超时。
- 用状态码、上游耗时和请求标识验收。
执行步骤
- 先用 curl 直接访问上游确认服务可用。
- 使用 nginx -T 检查最终合并配置。
- 核对 proxy_pass 是否带尾部斜线。
- 只在可信代理链中接受转发客户端地址。
- nginx -t 通过后再 reload。
可复制命令与示例
基础代理位置
location /api/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Request-ID $request_id;
}验证配置与响应
sudo nginx -t && curl -sS -D - https://example.test/api/health可复现任务记录
具体错误或任务
代理返回 502,但上游本机端口可访问,需要比较连接地址、协议和 Host。
失败信号:Nginx error log 出现 connect() failed 或 upstream prematurely closed connection。
最小输入
server/location 配置、上游地址、请求 Host、失败时间和直接访问上游的结果。
验证命令或步骤
nginx -t && curl -sS -D - -o /dev/null -H 'Host: example.test' 'http://127.0.0.1:8080/health'预期输出
nginx -t 显示 syntax is ok;上游 health 返回预期 2xx 和正确 Content-Type。
失败输出
connection refused、协议不匹配、Host 路由错误或上游提前关闭连接。
成功判据
代理与直连使用可解释的头和协议,目标路径返回同一业务结果,错误日志不再出现对应失败。
本任务常见错误
- 只改超时掩盖连接错误
- 混用 http 与 https 上游
- 未传递或误写 Host 导致路由错误
资料与适用边界
指令行为依据 Nginx 官方 proxy 模块文档;上游健康和业务响应由目标服务自身证据验证。
证据块复核日期:2026-09-04
相关站内页面
资料依据与复核边界
资料复核日期:2026-08-29