从入口高可用、健康检查、协议能力、弹性、配置自由度和运维责任比较云托管负载均衡与自建 Nginx。
云托管负载均衡和自建 Nginx 都能把请求分配到多个后端,差异主要在责任边界。托管产品由云平台维护入口节点和扩展能力;自建方案把配置自由度交给团队,同时也把入口高可用、升级和故障切换交给团队。
2026 年默认建议:正式网站需要多实例、高可用、证书托管和自动健康摘除时,优先云托管负载均衡;只有单机、内网开发环境,或必须使用 Nginx 特殊模块和复杂重写且团队能维护双节点高可用时,才优先自建。两者可以组合:托管负载均衡做稳定公网入口,Nginx 在应用层处理站点路由。

两种方案分别适合什么情况
| 维度 | 云托管负载均衡 | 自建 Nginx |
|---|---|---|
| 入口高可用 | 由云平台产品架构承担 | 需要自行部署多节点和切换机制 |
| 配置自由度 | 受产品支持范围约束 | 模块、配置和发布流程更灵活 |
| 容量扩展 | 通常按产品能力自动处理 | 需要监控实例容量并扩容 |
| 运维责任 | 主要管理监听、证书、规则和后端 | 还要管理系统、软件、补丁和入口故障 |
为什么单台 Nginx 不是高可用入口
Nginx 可以执行轮询、最少连接、权重和被动健康判断,但如果只部署一台,它自身仍是单点。真正的自建高可用需要至少两个入口节点、稳定的流量切换方式、配置同步、监控告警和升级回退。
健康检查不能只看端口
托管负载均衡通常按监听器和后端组执行健康检查。自建 Nginx 的开源能力与商业版本、模块和配置有关。无论选择哪种,都应让健康检查反映应用是否具备服务能力,而不是只确认 TCP 端口打开。
成本应该怎样比较
托管产品要计算实例或容量单位、流量、规则、日志和公网费用;自建方案要计算代理服务器、带宽、备用节点、监控、证书、升级和人员时间。低流量不一定意味着自建更便宜,高流量也不代表托管必然更贵。
实际决策顺序
- 确认协议、地域、内外网和可用区需求;
- 明确能否接受入口由团队自行维护;
- 核对健康检查、会话保持、证书、WebSocket 和日志需求;
- 用同一流量模型计算完整月度成本;
- 设计故障切换并实际演练。
按这四个条件直接决定
| 条件 | 选托管负载均衡 | 选自建 Nginx |
|---|---|---|
| 入口可用性 | 不能接受单机故障 | 可接受维护窗口,或已自建双机漂移 |
| 配置复杂度 | 标准七层/四层转发、证书和健康检查 | 依赖特殊模块、复杂脚本或定制协议 |
| 团队能力 | 希望平台维护入口节点 | 能处理补丁、证书、容量和故障切换 |
| 成本形态 | 接受实例、容量单位和流量账单 | 能承担两台以上服务器及运维成本 |
网站上线的推荐架构
DNS 指向托管负载均衡;负载均衡监听 80/443,把请求转发到至少两个可用区的应用实例。健康检查使用不依赖外部服务的轻量路径,例如 /healthz,但必须能发现进程不可用。安全组只允许负载均衡访问后端端口,SSH 走固定管理来源。若应用需要 Nginx 重写,把 Nginx 随应用部署,不能让单台 Nginx 成为所有流量唯一入口。
费用和隐性成本怎么比较
托管产品通常按负载均衡实例、容量或规则、处理流量及公网流量计费;跨可用区后端还可能产生数据费用。自建不仅是一台小服务器,还应至少计算双节点、弹性 IP、监控、证书自动更新、日志、升级和故障值守。低流量单站自建可能账面更低,但只要停机损失高于冗余成本,托管入口通常更合理。
健康检查异常走哪条分支
- 全部后端不健康:先从负载均衡所在网络访问健康端口,核对安全组、监听端口和路径返回码。
- 浏览器 502/504:检查后端连接、应用超时和 Nginx 上游日志,不能只延长负载均衡超时。
- 会话丢失:把会话移到 Redis/数据库或使用明确的粘性策略,不依赖某台机器内存。
- 证书更新失败:核对域名验证、证书绑定和到期时间;回退到上一有效证书而非关闭 HTTPS。
迁移验收与回退
先把测试域名指向新入口,验证证书、真实客户端 IP、上传大小、WebSocket、重定向和健康摘除。再降低正式 DNS TTL,小比例切换并观察 4xx/5xx、延迟和后端分布。旧 Nginx 或旧负载均衡保留到 DNS 缓存过期;异常时恢复旧解析。确认所有域名和监控都已迁移后再释放旧公网地址,避免不可恢复。
做决定前的否决条件
若团队无法维护两台入口机、自动续签证书和故障漂移,自建 Nginx 不能被称为高可用。若托管负载均衡不支持业务必需的协议、超时或客户端证书,也不能仅因省运维而采用。把这些硬条件写进验收清单,再用测试域名验证,避免上线后才发现入口能力不匹配。

