Nginx 反向代理与负载均衡:从入门到可上线
如果说“部署”是把服务跑起来,那么“上线”就是:稳定、可扩展、可回滚。Nginx 反向代理和负载均衡,基本是这一关的必修课。
这篇不重复宝塔面板那种“点点点部署”,而是把你最常用的 Nginx 核心能力用可直接复用的配置串起来。
反向代理到底做了什么
用户访问:
1 | 浏览器 -> Nginx(入口) -> 后端服务(应用) |
你得到的好处:
- 统一入口:一个域名多服务/多端口整合
- 隔离后端:后端不暴露公网
- 抗压:缓存、限流、连接复用
- 扩展:后端可水平扩容做负载均衡
最常用的反向代理模板
1 | server { |
WebSocket / SSE:别忘了升级头
如果你有 WebSocket(或某些框架的实时能力),需要:
1 | location /ws/ { |
负载均衡:upstream 三种常用策略
1 | upstream api_backend { |
健康与故障转移:让“坏节点”自动下线
Nginx 开源版虽然没有“主动健康检查”,但你可以用被动方式显著改善:
1 | upstream api_backend { |
含义:
max_fails:连续失败次数到达就认为该节点暂时不可用fail_timeout:在这个窗口里先不再尝试该节点
静态资源缓存:把压力从后端挪走
1 | location ~* \.(js|css|png|jpg|jpeg|gif|svg|webp|ico)$ { |
如果你是前后端分离,建议把静态文件交给 Nginx(或 CDN),后端只做 API。
基础限流:先保命,再谈体验
1 | limit_req_zone $binary_remote_addr zone=api_ratelimit:10m rate=10r/s; |
上线前必做的 4 件事
- 配置检查:
nginx -t - 灰度/回滚:保留上一份配置,reload 失败能快速恢复
- 日志可用:access/error 日志路径、格式、切割策略
- 超时合理:避免后端“卡死”拖垮连接池
总结
你可以把 Nginx 当成“流量调度器”:把正确的请求送到正确的后端,并在入口层尽可能把风险挡住(缓存、限流、超时、故障隔离)。
封面与配图来自 Unsplash(免费使用授权)。
- 标题: Nginx 反向代理与负载均衡:从入门到可上线
- 作者: 星苒鸭
- 创建于 : 2026-02-06 09:00:00
- 更新于 : 2026-03-05 19:20:55
- 链接: https://xingranya.cn/nginx-reverse-proxy-load-balancing/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。