21 10 月 2026
本文由财富云计算提供,我们提供高防服务器、CDN 防护与 NAT 型云服务器,无独立公网 IP 价格比独立 IP 省一半以上,大促防护方案提前咨询排期。

一、为什么大促期间必须提前防

攻击者也在「过节」——大促是你的峰值,也是他的窗口期:

时机因素攻击者的算盘
你流量暴涨攻击混在正常流量里,难区分、误杀成本高
你不敢关站关一分钟损失真金白银,勒索议价力强
你团队疲惫半夜被叫醒响应慢
你临时扩容新机器没加固,漏洞窗口
活动有截止打你一小时活动就废

大促防护的核心思想:活动前把所有能提前做的做完,活动当天只做「切换」和「观察」,不做「配置」。

二、T-14 天:架构准备

2.1 防护能力就位

# 检查清单:这些必须在大促前完成并测试
□ 高防/CDN 接入并跑通(不是买了就行,是切过流量测过)
□ 防护档位按预估峰值 ×2 准备(不够提前升,别当天升)
□ 源站回源白名单生效(切过流量验证过)
□ HTTPS 证书全覆盖(含 CDN 侧,别活动当天证书过期——见 SSL 篇)
□ WAF 规则观察模式跑过一周,误杀清单清零

2.2 源站加固

# Nginx 配置检查(照 Nginx 进阶防护篇全配)
nginx -t && systemctl reload nginx

# iptables 规则生效(默认 DROP,只放行业务端口)
iptables -L -n | head -20

# 内核参数(SYN Cookie 等)
sysctl -a | grep -E 'syncookies|somaxconn|max_syn_backlog'

# fail2ban 运行中(防半夜爆破)
systemctl status fail2ban

2.3 压测:知道自己的极限

# 用压测工具摸清各接口极限(示例 wrk)
wrk -t8 -c200 -d60s https://你的域名/api/xxx     # 接口级
wrk -t8 -c500 -d60s https://你的域名/            # 首页级

# 记录:每个接口的 QPS 上限、CPU/内存拐点
# 大促预估流量的 1.5 倍 < 接口极限 = 安全

压测注意事项:先和商家报备(否则可能触发防护被封)、从低到高、避开业务高峰、压完看恢复。

2.4 容量规划

按容量规划篇算:预估并发 × 安全系数 → CPU/内存/带宽。大促扩容是提前扩容,活动当天早上临时买机器 = 自找麻烦(配置、安全、部署全要时间)。

三、T-7 天:预案与演练

3.1 分级响应预案

级别现象响应动作决策人
P0 致命全站不可用 > 5 分钟切静态维护页 + 全员响应 + 商家工单技术负责人
P1 严重核心链路(下单/支付)受损关非核心功能保核心 + 切 CDN值班负责人
P2 中度部分接口慢/限流触发观察 + 调限流阈值运维
P3 轻度扫描/少量爆破fail2ban 自动处理无人值守

3.2 降级开关预埋

大促前把「关功能的开关」做好,活动当天一键降级:

# 大促降级配置(提前写好,按需启用)
# /etc/nginx/conf.d/promo-degraded.conf

# 级别 1:关搜索(吃数据库的接口先关)
location = /api/search {
    return 503 '{"code":503,"msg":"搜索维护中"}';
}

# 级别 2:关推荐/个性化
location ~ ^/api/recommend {
    return 503;
}

# 级别 3:只读模式(关发帖/评论/上传)
location ~ ^/api/(post|comment|upload) {
    return 503 '{"code":503,"msg":"高峰期限流"}';
}

# 级别 4:全站静态页
# location / { return 503; }  # 配 root 指到静态维护页
# 启用哪个级别就 mv 对应文件 + reload,10 秒完成

3.3 演练

T-3 天做一次桌面演练:

  1. 模拟「凌晨 2 点全站 503」——谁起床、登哪、敲什么命令、多久恢复
  2. 模拟「支付接口被打」——降级到哪级、谁通知客服
  3. 模拟「CDN 扛不住」——切高防的完整流程走一遍

没演练的预案 = 没有预案。演练发现的问题(密码找不到、命令抄错、没人有商家电话)活动前修掉。

四、T-1 天:最终检查

□ DNS TTL 已调短(300s,切流准备)
□ 监控告警测试过(发条测试消息,确认能收到)
□ 备份全部完成(数据库 + 文件 + 快照)
□ 值班表确认(几点到几点谁在,手机号互存)
□ 商家工单渠道确认(高防/CDN 的紧急联系方式存好)
□ 降级开关文件就位(mv 就能用)
□ 静态维护页做好(P0 时顶上)
□ 团队公告模板写好(被攻击时的对外话术)

五、活动当天:值守节奏

5.1 监控看板(值班盯着这几个)

# 一屏看完核心指标(写个脚本每分钟刷新)
watch -n 60 '
echo "=== $(date +%H:%M:%S) ==="
ss -s | grep -E "TCP:|UDP:"
tail -1000 /var/log/nginx/access.log | awk "{print \$9}" | sort | uniq -c | sort -rn | head -5
free -h | grep Mem
uptime
'
指标正常预警
established 连接基线 ±50%超基线 3 倍(慢速/CC)
5xx 比例< 0.1%> 1%(被打崩或过载)
单 IP 请求分散某 IP 一柱擎天
CPU/内存< 70%> 85%(扩容或降级)
带宽按预估超预估 2 倍(DDoS)

5.2 小时级巡检

每小时过一遍:错误率、慢接口 Top10、连接数、磁盘(日志暴涨是大促常见事故——提前扩 logrotate 频率)。

5.3 被攻击时的响应流程

发现异常 → 定级(P0-P3)
   ↓
P3 → fail2ban 处理,记录
P2 → 调限流 + 观察 10 分钟
P1 → 启用降级开关(保核心)+ 切 CDN + 通知
P0 → 静态维护页 + 全员 + 商家 + 公告
   ↓
任何级别:记录时间线(取证 + 复盘)

大促中的决策原则:保交易链路,牺牲体验。搜索慢就关搜索,评论卡就关评论——下单支付流程一分钟都不能断。

六、典型场景处置

场景 1:凌晨 3 点,带宽打满,全站 503

  1. 定级 P0,起床
  2. ping + ss -s 确认大流量(不是应用问题)
  3. 域名切 CDN(TTL 短,10 分钟生效)或切高防
  4. 若已在高防上:看后台攻击类型,联系商家确认清洗状态
  5. 通知值班群 + 准备对外公告
  6. 攻击结束:恢复 + 复盘

场景 2:下午 2 点,短信接口被刷,话费飞涨

  1. mv promo-degraded-sms.conf 熔断短信接口(10 秒)
  2. 查日志:哪个接口、什么 IP、什么 UA
  3. 该接口加图形验证 + 严格限流(CC 变种篇)
  4. 恢复接口,观察
  5. 查是否有漏刷的已发短信(业务层处理)

场景 3:晚 8 点高峰,CPU 100%,但没被攻击(真实流量过载)

  1. 别慌,这不是攻击——扩容(云控制台热升级)或启用降级
  2. 关掉最贵的接口(搜索/推荐)
  3. 事后:这是容量规划失误,复盘压测数据

区分「被攻击」和「被挤爆」很重要:前者看日志形态(异常请求),后者看业务指标(QPS 涨但请求正常)。搞错了响应全错——被挤爆你去买高防,被攻击你去扩容,都是白花钱。

七、活动后:复盘三件套

攻击或过载过去 24 小时内:

  1. 数据复盘:峰值 QPS、攻击量级、降级了几级、恢复了多久
  2. 预案更新:这次哪个开关没预埋、哪个命令现场查了、哪个人联系不上——补进预案
  3. 防护调整:攻击量级 > 当前档位 → 升档;误杀多 → 调 WAF 规则;容量不足 → 扩容常态化

每次大促都让预案进化一次——第三次活动时,你的响应应该像排练过的一样(因为排练过)。

八、预案模板(直接抄)

# XX 活动防护预案(2026-XX-XX)

## 值班表
- 00:00-08:00 ___  /  08:00-16:00 ___  /  16:00-24:00 ___
- 技术决策人:___(任何 P0/P1 直接打电话)

## 关键信息
- 源站 IP:___  高防 IP:___  CDN CNAME:___
- 商家紧急工单:___
- DNS 管理后台:___

## 降级开关(按严重度从轻到重)
- L1 关搜索:mv /etc/nginx/conf.d/promo-degraded.conf.d/S1 ./
- L2 关推荐:___ 
- L3 只读模式:___
- L4 静态维护页:___

## 切 CDN 流程
1. 确认 TTL=300
2. DNS 改 CNAME:___
3. dig 验证 + 多地 ping
4. 源站确认回源白名单含 CDN 段

## 公告模板
「尊敬的用戸,本站于 X 时遭遇网络攻击,已启动防护,您的数据安全,预计 X 时恢复。详情见群/客服。」

九、监控告警的具体配置

值守不是盯着屏幕靠眼力,告警要自动化。最小可用配置:

# 1. 网站可用性(外部探测,Uptime Kuma 或自建)
# 每 1 分钟探测首页 + 支付接口,失败 2 次告警

# 2. 服务器资源(本机脚本,每分钟)
cat > /usr/local/bin/promo-monitor.sh << 'EOF'
#!/bin/bash
WEBHOOK="你的企业微信/钉钉/飞书机器人URL"
TS=$(date +%H:%M:%S)

# 连接数
CONN=$(ss -tn state established | wc -l)
[ "$CONN" -gt 500 ] && curl -s "$WEBHOOK" -H 'Content-Type: application/json'   -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"[$TS] established 连接 $CONN 异常\"}}"

# 5xx 比例(最近 1000 条日志)
ERRS=$(tail -1000 /var/log/nginx/access.log | awk '$9>=500' | wc -l)
[ "$ERRS" -gt 50 ] && curl -s "$WEBHOOK" -H 'Content-Type: application/json'   -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"[$TS] 5xx 错误 $ERRS/1000\"}}"

# CPU
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d% -f1)
[ "${CPU%.*}" -gt 85 ] && curl -s "$WEBHOOK" -H 'Content-Type: application/json'   -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"[$TS] CPU ${CPU}%\"}}"
EOF
chmod +x /usr/local/bin/promo-monitor.sh
echo "* * * * * root /usr/local/bin/promo-monitor.sh" > /etc/cron.d/promo-monitor

告警渠道的选择:企业微信/钉钉/飞书机器人免费且手机能收到——别用邮件,凌晨没人看邮箱。阈值宁低勿高:误告一次的成本是「看一眼」,漏告一次的成本是「站挂一小时没人知道」。

日志聚合和可视化(Loki + Grafana)见Loki 日志体系,大促期间的流量曲线是复盘的硬材料。

十、小结

大促防护 = T-14 天架构就位 + T-7 天预案演练 + T-1 天最终检查 + 当天分级值守。核心原则三条:活动前做完所有配置(当天只切换)、保核心交易链路(牺牲边缘体验)、分得清攻击和过载(响应完全不同)。预案的价值不在文档漂亮,在于凌晨三点被叫醒时,你闭着眼都能执行——因为演练过。


相关阅读:


本文由财富云计算整理,我们提供高防服务器、CDN 防护与 NAT 型云服务器,无独立公网 IP 机型价格比独立 IP 省一半以上,大促/活动防护方案请提前排期咨询。更多教程见端口速查表。
延伸阅读
  1. 高防误区与避坑清单:25 个坑+下单前必问 14 问+到货验货流程
  2. DNS 攻击防护专题:劫持、隧道、投毒、放大四类攻击与 DNSSEC
  3. 源站真实 IP 隐藏完全指南:六大暴露面排查+NAT 型终极方案
  4. 日志分析找攻击源:Nginx 日志三维度分析法与证据固定
  5. 攻击应急响应手册:六阶段响应流程,从确认到复盘的照做清单
  6. iptables 抗 DDoS 配置模板:状态过滤+SYN 防护+防扫描+游戏服版
  7. OpenResty Lua 自研 WAF:动态限流+攻击特征检测+Redis 黑名单
  8. Nginx 进阶防护:连接层、请求层、行为层三层生产级配置
更多阅读
  1. 上一篇:源站真实 IP 隐藏完全指南:六大暴露面排查+NAT 型终极方案
  2. 下一篇:DNS 攻击防护专题:劫持、隧道、投毒、放大四类攻击与 DNSSEC
发表评论 1