当前位置:首页>Linux>Linux进阶 | Nginx 服务安装与配置(五):反向代理与 502 排错实战

Linux进阶 | Nginx 服务安装与配置(五):反向代理与 502 排错实战

  • 2026-09-07 20:04:30
Linux进阶 | Nginx 服务安装与配置(五):反向代理与 502 排错实战
在开始本篇的内容前,可以关注并私信【nginx】获取【深入剖析Nginx】电子书!废话不多说,开始本节的内容!
前一篇我们完成了:
  • 多站点部署
  • 虚拟主机配置
  • 日志拆分
但真正的生产环境,Nginx 很少只做“静态服务器”。
它更重要的角色是:反向代理入口
这一篇,我们彻底讲清:
✔ 什么是反向代理
✔ proxy_pass 的核心逻辑
✔ 前后端分离部署
✔ 502 / 504 常见错误排查

一、什么是反向代理?

通俗解释:
用户 → Nginx → 后端应用 → Nginx → 用户
用户永远只看到 Nginx,
后端应用被“隐藏”。
这就是反向代理。
与正向代理(如翻墙代理)不同:
正向代理:代理客户端
反向代理:代理服务器
在企业架构中,Nginx 充当流量入口层。

二、模拟一个后端服务

为了演示,我们用 Python 快速启动一个后端服务。
在服务器执行:
python3 -m http.server 8080
这会在 8080 端口启动一个简单 HTTP 服务。
测试:
curl http://127.0.0.1:8080
如果有返回,说明后端正常。

三、配置反向代理

编辑虚拟主机文件:
vim /etc/nginx/conf.d/proxy.conf
写入:
server {    listen 80;    server_name proxy.local;    location / {        proxy_pass http://127.0.0.1:8080;    }}
检查并重载:
nginx -tnginx -s reload
访问:
http://proxy.local
你会发现:
浏览器展示的是 8080 服务内容。
但用户实际访问的是 80 端口。
这就是最基础的反向代理。

四、proxy_pass 的路径坑点(高频踩坑)

这是面试与生产中最容易出错的地方。
看两个配置:
情况 1(带斜杠)
location /api/ {    proxy_pass http://127.0.0.1:8080/;}
情况 2(不带斜杠)
location /api/ {    proxy_pass http://127.0.0.1:8080;}
假设访问:
/api/test
两种情况的转发路径不同。
简化理解:
带 /:替换匹配部分
不带 /:拼接原始路径
生产中建议:明确路径结构,避免歧义。
很多 404 都是因为这个细节。

五、前后端分离典型配置

现代 Web 架构通常是:
前端静态资源(Vue / React)
后端 API 服务
典型配置:
server {  listen 80;  server_name demo.local;  location / {    root /data/www/frontend;    index index.html;  }  location /api/ {    proxy_pass http://127.0.0.1:8080/;  }}
含义:
访问 / → 静态前端页面
访问 /api/ → 转发后端接口
这就是前后端分离部署模型。

六、502 Bad Gateway 排查

最常见线上问题。
原因一:后端未启动
检查:
ss -lntp | grep 8080
原因二:端口写错
确认 proxy_pass 地址正确。
原因三:防火墙限制
关闭测试:
systemctl stop firewalld
原因四:权限或 SELinux
临时关闭:
setenforce 0

七、504 Gateway Timeout

表示:后端响应超时
默认超时时间较短。
可增加:
proxy_read_timeout 60s;
放在 location 内。

八、增强版代理配置(推荐生产使用)

location /api/ {  proxy_pass http://127.0.0.1:8080/;  proxy_set_header Host $host;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
作用:
传递真实客户端 IP
后端可获取访问来源
否则后端看到的 IP 永远是 127.0.0.1。

九、访问日志验证

实时查看:
tail -f /var/log/nginx/access.log
如果状态码为:
200 → 正常
502 → 后端异常
504 → 后端超时
日志是排错第一工具。

十、本篇核心能力升级

现在你已经具备:
✔ 反向代理配置能力
✔ 前后端分离部署能力
✔ proxy_pass 原理认知
✔ 502 / 504 排查能力
这已经是初级运维 → 中级运维的关键跨越。
下一篇,我们进入:
👉 负载均衡实战
👉 upstream 配置
👉 轮询 / 权重 / ip_hash
👉 高可用基础架构
从“单点服务”升级为“集群架构”。
继续跟着系列,你会真正掌握生产级 Nginx。

最新文章

随机文章