Nginx 反向代理配置详解(附 5 种常见场景)

一、反向代理是什么

反向代理位于客户端和后端服务之间,对外暴露统一入口,把请求转发到内网的多台服务器。它解决的是统一入口、负载均衡、HTTPS 终结、隐藏后端等问题。

二、最常用配置:代理到后端服务

server {
    listen 80;
    server_name api.example.com;
    location / {
        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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

三、五种常见场景

1. 多服务按路径分流

location /api/   { proxy_pass http://127.0.0.1:8080; }
location /admin/ { proxy_pass http://127.0.0.1:9000; }

2. 负载均衡

upstream backend {
    server 10.0.0.1:8080 weight=3;
    server 10.0.0.2:8080 weight=1;
}
location / { proxy_pass http://backend; }

3. HTTPS 终结 + HTTP 转发

Nginx 做 SSL 终止,后端只跑 HTTP,降低后端加解密开销。

4. WebSocket 支持

location /ws/ {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

5. 静态资源 + 动态分离

location /static/ { root /var/www; expires 30d; }
location / { proxy_pass http://127.0.0.1:8080; }

四、实战:给微信 API 做代理

把请求统一从固定服务器 IP 出网,避免家庭宽带 IP 变动导致白名单失效:

location /wxproxy/ {
    proxy_pass https://api.weixin.qq.com;
    proxy_set_header Host api.weixin.qq.com;
    proxy_ssl_server_name on;
}

五、排错清单

  • 502:后端没起或端口错,先 curl 后端地址验证。
  • 413:client_max_body_size 20m; 调大。
  • 超时:加 proxy_read_timeout 60s;。

结语

反向代理是运维基本功,配熟这五种场景,日常 90% 的需求都能覆盖。

上一篇 本地部署大模型 LLM 完全指南:从硬件选型到 vLLM 实战
下一篇 AI 辅助编程实战:Copilot vs Cursor vs Codeium 深度对比
最新评论
Docker 网络模式详解:bridge/host 生产选型 - FSData
Docker 网络模式详解:bridge/host 生产选型 - FSData
8月20日
[…] 注意最后那条:把端口绑定到 127.0.0.1,再由宿主机上的 Nginx 反代进来,比直接 -p 80:80 暴露安全得多,也方便统一做
Vue3 + TypeScript 工程化:类型安全的前端架构 - FSData
Vue3 + TypeScript 工程化:类型安全的前端架构 - FSData
8月20日
[…] Pinia 的工程化用法,可以参考我们之前的实战文章 《Vue3 组合式 API + Pinia:状态管理从入门到实战》,那里覆盖了 Sto
2026 年最值得装的 10 个 VS Code 插件(AI/前端/后端/效率全覆盖) - FSData
2026 年最值得装的 10 个 VS Code 插件(AI/前端/后端/效率全覆盖) - FSData
8月19日
[…] 状态,点一下就能起停容器,配合我们讲过的 Docker Compose 编排 […]
Redis 缓存设计:穿透、击穿、雪崩与最佳实践 - FSData
Redis 缓存设计:穿透、击穿、雪崩与最佳实践 - FSData
8月19日
[…] 缓存三大坑的本质都是”缓存失效导致请求穿透到数据库”。记住口诀:穿透用布隆、击穿用锁、雪崩用错峰。配合合理的过期策略
GitHub Actions 实战:从零搭建 CI/CD 流水线 - FSData
GitHub Actions 实战:从零搭建 CI/CD 流水线 - FSData
8月19日
[…] Docker 镜像部署。结合我们之前写的 Docker Compose 一键编排实战,可以在 CI […]