单台服务器扛不住高峰
所有请求打到同一台机器,CPU 与连接数迅速见顶,加机器也用不上。
临时加机器也救不回当天的活动
解决方案 技术解决方案 负载均衡
流量分发 · 健康检查 · 节点增减
业务上量后最先撑不住的,往往不是单台机器的性能,而是全部请求都压在一台机器上。我们把请求先收敛到统一入口,再按策略分发到多台健康的后端节点。
按峰值并发倒推节点数
把单点、瓶颈与停机风险从架构里拿掉。
所有请求打到同一台机器,CPU 与连接数迅速见顶,加机器也用不上。
临时加机器也救不回当天的活动
入口与业务同一台机器,硬件故障或进程崩溃会让整站不可用。
一次硬件故障就是一次全站停服
调整架构要凌晨停服,节点切换后登录状态丢失,购物车可能被清空。
扩容要挑凌晨,还得赌不丢会话
流量统一回源到单一地域时远端用户绕路,为每个区域单独采购带宽又叠加成本。
远端用户慢,带宽钱还是双份
高峰、登录态、多地域和不停机发布,入口与后端要分开。
典型情况
短时流量把单台机器的 CPU 和连接数打满,临时加机器也接不到请求。
怎么配
入口与后端分开。后端按峰值并发加节点,活动结束后再退出服务器组。
典型情况
入口和业务在同一台机器上,硬件故障或进程崩溃会让整站不可用。
怎么配
健康检查发现异常后摘除该节点,其余健康节点继续接流量。
典型情况
节点一切换,登录状态丢失,购物车可能被清空。
怎么配
会话保持把同一用户固定到同一节点,再配合集群会话同步。
典型情况
流量统一回到单一地域,远端用户绕路,分区域买带宽又叠成本。
怎么配
多机房入口就近接入,后端服务器组按地区横向增加。
典型情况
短连接和长连接叠在一起,单台机器的连接数先到上限。
怎么配
数据库和长连接走四层转发,HTTP 接口走七层,节点不够就再加一台。
典型情况
新版本要停机发布,出了问题只能整站回滚。
怎么配
新版本先上部分节点,按比例切流。异常时把流量切回旧节点,不必重新部署。
健康检查决定谁接流量。故障节点自动摘除,灰度按比例切流,会话在后端同步。
三层角色的选型口径不同。
入口、后端与加固三类角色分开选,各自的选型口径不同。规格和价格以商品页为准。
| 适用场景 / 机型 | CPU | 内存 | 硬盘 | 线路 | 带宽 | 防御 | IPv4 | 参考价格 | 选购 |
|---|---|---|---|---|---|---|---|---|---|
| US-E3-1230v3 | E3-1230V3·4C / 8T | 32G | 1T SSD | CN2 Direct Pro | 30M / 不限流量 | 10G | 3 IPs | $79 /月起 | 选购 |
| HK-E3-1230V3 | E3-1230V3·4C / 8T | 32G | 1T SSD | CN2 Direct Pro | 10M / 不限流量 | 20G | 3 IPs | $89 /月起 | 选购 |
| US-LA-E5-2620 | E5-2620·6C / 12T | 32G | 1T HDD | China Direct Pro | 100M / 不限流量 | 10G | 5 IPs | $99 /月起 | 选购 |
| US-E5-2630x2 | E5-2630 x 2·12C / 24T | 32G | 1T SSD | CN2 Direct Pro | 30M / 不限流量 | 10G | 3 IPs | $109 /月起 | 选购 |
角色分工:入口只看转发规则数与连接跟踪表,后端按并发横向加机器,加固只放在真正暴露的公网入口上。
价格以商品页为准。未列出的 CPU、内存与硬盘可按需配置。季付 9.5 折、半年付 9 折、年付 8.5 折,续费同价。
节点数 = 峰值并发 ÷ 单节点连接档,再留冗余;探测参数按节点规模调。
| 峰值并发连接 | 后端节点数 单节点 1,000 连接 | 后端节点数 单节点 2,000 连接 | max_fails / fail_timeout | 会话保持方式 |
|---|---|---|---|---|
| 500 个 | 2 台 | 2 台 | 1 次 / 10 秒(默认) | ip_hash |
| 1,000 个 | 2 台 | 2 台 | 1 次 / 10 秒(默认) | sticky cookie |
| 5,000 个 | 6 台 | 4 台 | 2 次 / 10 秒 | sticky cookie |
| 10,000 个 | 11 台 | 6 台 | 2 次 / 10 秒 | sticky learn |
| 50,000 个 | 51 台 | 26 台 | 3 次 / 15 秒 | sticky learn |
| 100,000 个 | 101 台 | 51 台 | 3 次 / 15 秒 | sticky learn + slow_start |
| 200,000 个 | 201 台 | 101 台 | 3 次 / 15 秒 | sticky learn + slow_start |
节点数 = 峰值并发 ÷ 单节点连接档(向上取整)+ 1。例如 5,000 并发、单节点开 1,000 连接,5,000 ÷ 1,000 = 5,加 1 台冗余即 6 台;把单节点开到 2,000 连接,则 5,000 ÷ 2,000 向上取整为 3,加 1 台即 4 台。1,000 与 2,000 是便于估算的设定值,不是 NGINX 默认值。max_conns 默认 0 表示不限制,要按单机实际能力填。
| 参数 | 默认值 | 作用范围 | 常见误用 |
|---|---|---|---|
| max_fails | 1 次 | fail_timeout 窗口内失败几次即判不可用 | 单节点服务器组里该参数被忽略 |
| fail_timeout | 10 秒 | 统计失败的窗口,也是判不可用后的禁用时长 | 网络抖动时 10 秒过于激进,节点来回摘挂 |
| slow_start | 0(关闭) | 节点恢复后权重从 0 爬升到标称值的时长 | 不设则恢复瞬间被打满 |
| max_conns | 0(不限制) | 单个后端的最大并发活动连接数 | 不设则单节点可被压垮 |
| queue timeout | 60 秒 | 选不出上游时请求排队时长,超时返回 502 | 排队过长会把 502 放大成雪崩 |
| 一致性哈希 | 仅四层支持 | 增删后端时只有少量 key 重映射 | 七层不支持,扩容时缓存集体失效 |
| sticky learn 会话容量 | 1 MB zone ≈ 4,000 个会话 | 64 位平台上会话存放在共享内存区 | 会话膨胀会挤掉旧会话 |
| sticky 会话 timeout | 10 分钟 | 超时未访问的会话被移除 | 移动端长会话会被判成新会话 |
| backup | 不标记(关闭) | 标记后仅当主服务器全部不可用才接流量 | 把备用节点当第二组常态使用 |
| down / drain | 不标记(关闭) | down 永久摘除;drain 只代理已绑定的请求 | 临时摘机直接删服务器,哈希映射全变 |
两个陷阱:后端组里只有一台服务器时,max_fails、fail_timeout 与 slow_start 会被忽略,那台永远不会被判为不可用;只有四层支持一致性哈希,把缓存类后端挂在七层上,每次扩容都会触发一次缓存集体失效。
调度、摘除、会话、灰度和节点增减,每项对应可交付做法。
请求先到统一入口。四层按连接转发,七层按域名和 URL 分流。健康检查把故障节点摘掉,会话保持配合集群同步,灰度只切一部分流量。节点按峰值并发增减,入口配置不用重做。
四层按 TCP 连接转发,适合数据库、长连接与非 HTTP 协议。七层按 HTTP 请求路由,可按域名与 URL 精确分流。
对流量调度的意义: 层次选对,后面就不用回头改架构。
健康检查发现异常后自动隔离该节点,新请求不再分发过去。节点恢复后自动重新加入服务器组。
对流量调度的意义: 一台机器故障不再等于整站中断。
同一用户的请求稳定落到同一节点,并配合集群会话同步。节点增减时登录状态保留。
对流量调度的意义: 扩容不再把购物车和登录态清掉。
新版本先部署到部分节点,只切一小部分流量,确认稳定后再逐步放量。异常时把流量切回旧版本节点。
对流量调度的意义: 回滚不需要重新部署,业务不中断。
横向增加后端节点即可承接新增流量,入口配置与调度策略保持不变。峰值结束后可把节点退出服务器组。
对流量调度的意义: 扩容不必凌晨停机,也不必换掉整套架构。
开通之后,调度策略和节点数量仍可按峰值调整。
工作日 30 分钟内首次响应,夜间及周末仅处理宕机。
标准配置 30–60 分钟内交付,定制配置需 1–2 个工作日。
覆盖美国、中国香港、日本、新加坡与德国等 12+ 个地区。
协助配置流量监听、转发策略与健康检查规则,参数按业务峰值调整,而不是照抄默认值。
支持 Raid 磁盘阵列与机房实时备份,单块硬盘故障不至于打断服务。
网络可用性以 99.9% 为目标,带宽与后端节点可随业务调整。
后端有几台服务器、业务用什么协议、日常与峰值流量差多少、用户主要分布在哪里、是否要求不停机发布——把这些信息告诉方案顾问,我们会给出调度架构建议与配置报价。
通常不需要。负载均衡工作在业务入口,后端只需监听对应端口并通过内网接入。若业务依赖本地会话文件,在方案沟通阶段说明即可,我们会给出会话保持或集群会话同步建议。
不会整体中断。健康检查发现异常后自动隔离该节点,新请求不再分发到故障节点,已有访问由其他健康节点继续处理。节点恢复后自动重新加入服务器组。
会话保持让同一用户的请求稳定落到同一节点,配合集群会话同步,节点增减时登录状态不丢失。横向扩容后现有用户不受影响,新用户按调度策略分配到包含新节点的服务器组。
看协议与调度精细度。四层按 TCP 连接转发,适合数据库、长连接与非 HTTP 协议。七层按 HTTP 请求路由,可按域名与 URL 精确分流。层次选错的代价是回头改架构,不只是改一行配置。
不需要。横向增加后端节点即可承接新增流量,入口配置与调度策略保持不变。峰值结束后可把节点退出服务器组以控制成本。
把新版本部署到部分节点,先只把一小部分流量切给这些节点,确认稳定后再逐步放量。发现异常时把流量全部切回旧版本节点即可,回滚不涉及重新部署。
按节点数 = 峰值并发 ÷ 单节点连接档(向上取整)+ 1 台冗余来算。5,000 峰值并发、单节点开 1,000 连接,即 5 台加 1 台冗余共 6 台。把单节点开到 2,000 连接,只需 3 台加 1 台。连接档要按单机实测能力填,max_conns 默认 0 表示不限制。
多半是探测太严。默认失败 1 次、窗口 10 秒,网络抖动时节点会来回摘挂。可以把失败次数调到 2 到 3 次,窗口拉到 10 到 15 秒。节点恢复后打开 slow_start,让权重从 0 慢慢爬升,避免刚恢复就被打满。单节点服务器组里失败次数会被忽略,至少保留两台再靠健康检查摘除。
四层转发默认不改报文,后端看到的源地址是负载均衡入口。要真实客户端地址,七层在转发头里带上 X-Forwarded-For 或 X-Real-IP,后端按这个头记日志和做风控。四层需要入口支持 PROXY 协议,后端也要打开对应解析。不要只按入口 IP 做限流,否则所有用户会被当成同一个来源。
长连接、WebSocket 和数据库协议优先走四层,按 TCP 连接转发,中间不再解析 HTTP。七层适合按域名和 URL 分流的短请求。七层如果超时时间短于连接保活,连接会被入口主动断开。会话保持仍要打开,否则同一条长连接的后续包可能被分到别的节点。