在开始本篇的内容前,可以关注并私信【nginx】获取【深入剖析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; }}
四、proxy_pass 的路径坑点(高频踩坑)
location /api/ { proxy_pass http://127.0.0.1:8080/;}
location /api/ { proxy_pass http://127.0.0.1:8080;}
五、前后端分离典型配置
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/; }}
六、502 Bad Gateway 排查
七、504 Gateway Timeout
八、增强版代理配置(推荐生产使用)
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 永远是 127.0.0.1。九、访问日志验证
tail -f /var/log/nginx/access.log
十、本篇核心能力升级