1.
准备与容量评估
- 目标:估算并发请求、带宽峰值与后端处理能力。
- 步骤:查看历史流量(最近大促、平时峰值),按预期增幅(通常 2–5 倍)估算并发连接数与吞吐量。
- 输出:确定需要的高防带宽(例如 1Gbps/5Gbps/10Gbps)、后端服务器数量与规格(CPU/RAM/磁盘IO)。
2.
选择香港高防云与托管方式
- 云厂商与托管:优先选择提供“清洗+带宽”一体化的香港节点供应商,确认 SLA 与清洗阈值。
- 防护等级:选定支持应用层与网络层(L3/L4/L7)双重清洗,自动触发的方案更可靠。
- 订单细节:提前预留带宽与防护峰值,确认是否支持黑洞/灰洞策略与白名单。
3.
网络拓扑与DNS策略设计
- 拓扑:前端使用高防接入 -> 负载均衡器(HA/主动)-> 多台应用服务器 -> 数据库/缓存。
- DNS:将低TTL(如 60 秒)用于大促前后,结合 DNS 轮询或智能解析;备用域名与备用IP用于故障切换。
- 演练:提前演练DNS切换流程并记录生效时间。
4.
部署负载均衡器(方案选择)
- 托管LB:优先使用云提供的高可用负载均衡(支持L4/L7、SSL卸载)。
- 自建LB:若自建,推荐 HAProxy(L4/L7)或 Nginx Plus,前置 Keepalived 做 VRRP 高可用。
- 配置要点:启用健康检查、会话保持(必要时)、最大连接数与超时控制。
5.
HAProxy 典型配置(步骤)
- 安装:在 Ubuntu 上
apt-get install -y haproxy。
- 基本配置示例(关键字段说明):在 /etc/haproxy/haproxy.cfg 中添加 frontend/listen、backend、health check 与 ssl-offload。
- 调整:设置
maxconn、短连接超时(
timeout client、
timeout server)并启用
balance roundrobin 或
leastconn。
6.
Nginx 反向代理与连接数调优
- 安装:
apt-get install -y nginx。开启 worker_processes auto,调整 worker_connections 至 10240 以上。
- 配置要点:使用 keepalive_timeout、proxy_read_timeout 并开启 keepalive 后端连接。
- SSL:若在 Nginx 做 SSL 卸载,使用 certbot 获取证书并配置
ssl_ciphers 与 OCSP stapling。
7.
健康检查与流量切换策略
- 健康检查:配置 HTTP(S) 200 响应检查,检查频率 10s 或更短,大促期间可缩短为 5s。
- 异常处理:失败阈值(如连续3次失败)后剔除节点,恢复阈值为连续2次成功。
- 灰度切换:发布和回滚时使用权重逐步调整后端流量,避免一次性压垮后端。
8.
会话保持与分布式缓存方案
- 会话保持:尽量采用无状态设计,若必须保留会话,使用 Redis/Memcached 做集中会话存储。
- Sticky:若使用负载均衡的 sticky cookie,注意粘滞会影响扩容效果。优先采用 JWT 或分布式 Session 存储。
- 缓存策略:边缘缓存 + 后端缓存双层,缓存静态资源至 CDN、动态接口可短缓存。
9.
内核与网络调优(Linux)
- 必要 sysctl:例如
net.core.somaxconn=65535,
net.ipv4.tcp_max_syn_backlog=3240000,
net.ipv4.tcp_tw_reuse=1。
- 文件句柄:调整 /etc/security/limits.conf,用户 nginx 或 haproxy 的 nofile 至 200000。
- conntrack:在高并发下调大连接追踪表大小或使用短时黑名单策略,避免 conntrack 成为瓶颈。
10.
防护策略:WAF、速率限制与黑白名单
- WAF:开启规则拦截常见Web攻击(SQLi、XSS、恶意爬虫),在大促开启严格模式但注意误杀。
- 速率限制:在 LB 或 Nginx 配置限流(如每IP每秒X次),对敏感接口设置更严格的限流。
- 黑白名单:对已知可疑IP使用 ipset/iptables 进行阻断,白名单用于运维/支付回调。
11.
日志、监控与告警配置
- 指标:监控 QPS、响应时间、后端错误率、CPU、内存、带宽与清洗告警。
- 工具:Prometheus + Grafana、Zabbix 或云厂商监控,设置阈值告警(如 5 分钟内错误率>3%)。
- 日志:集中收集 nginx/haproxy 日志,开启请求ID以便追踪链路。
12.
自动扩容与伸缩策略
- 横向扩展:使用脚本或云自动扩容组,根据监控指标(CPU、连接数、延迟)触发扩容/缩容。
- 熔断与排队:在应用层引入熔断器(如 Hystrix 风格)和请求队列,防止后端雪崩。
- 冷启动:预热新节点(预加载 JVM、缓存),避免扩容后延迟骤增。
13.
安全与回滚预案
- 回滚策略:记录发布步骤与快照,准备数据库回滚或前端路由回退方案。
- 灾备:启动备用PoP或备用机房,确保数据同步与缓存清理脚本到位。
- 演练:至少一次模拟大促流量演练并演练回滚路径。
14.
测试与验证(上线前72/24/1小时检查)
- 压力测试:用 wrk/ab/jmeter 模拟并发,重点测试单接口峰值承载能力与错误率。
- 卫生检查清单:证书到期、DNS TTL、备份、告警策略、扩容脚本、生效时间表。
- 预案沟通:运维、开发、网络、安全三方建立快速沟通群与指挥流程。
15.
现场操作步骤清单(大促当天)
- T-24h:锁定配置、冻结代码、备份数据、确认带宽与清洗申报。
- T-1h:把DNS TTL降到最低,开启严格WAF规则、速率限制与日志增强。
- T+0:实时监测流量、按需手动调节后端权重并准备立即回滚路径。
16.
快捷命令与配置片段(常用)
- 增大 file limit:在 /etc/security/limits.conf 添加
* soft nofile 200000。
- iptables 限速示例:
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 200 -j DROP(慎用并测试)。
- Nginx worker 调整:在 nginx.conf 设置
worker_processes auto; worker_connections 65536;。
17.
问:大促期间如何快速判断是否触发了云端DDoS清洗?
- 答:查看云厂商的控制台告警与清洗日志,通常会显示攻击流量峰值与被清洗流量(Gbps)。同时监控带宽利用率与后端错误率剧增。若云控制台确认清洗,观察清洗策略(丢包、灰洞或清洗后的正常流量),并核对是否有异常源IP集中出现以便补充黑名单。
18.
问:选择香港节点时带宽与防护阈值如何决策?
- 答:基于历史峰值流量乘以安全系数(至少2倍,暴发期可取5倍)决定带宽;同时选择防护阈值不低于预估带宽的 1.5 倍,确保清洗阈值大于预期正常峰值以避免误触。若预算允许,选择按天/小时可弹性的带宽与按需提升防护等级。
19.
问:如果大促中某台后端突然变慢,我该如何用负载均衡快速处置?
- 答:首先观察健康检查是否已将该实例标记为不健康;如果未标记,可手动降低该后端权重或先剔除该节点(在 HAProxy 中用
disable server),再排查实例日志与系统指标(CPU、IO、连接数)。同时启动备用实例并触发扩容脚本,必要时回滚最新发布版本。
来源:电商大促期间香港高防云服务器托管负载均衡配置指南