| 症状 | 检查命令 / 位置 | 判定 |
|---|---|---|
| ssh 卡顿、ping 大量丢包,但机器负载不高 | ping 182.92.213.171 · 阿里云控制台 ECS 监控「网络带宽」打满 | 容量型 L3/L4(带宽被灌满)→ 走第三节 |
| 机器能登,nginx 连接数/QPS 暴涨、CPU 高 | ss -s · tail -f /var/log/nginx/access.log · top | 应用层 CC / 爬取洪峰 → 走第二节 |
| IP 全网不可达(连阿里云内网也 ping 不通) | 控制台 → DDoS 基础防护 → 实例列表:状态「黑洞中」 | 已进黑洞 → 走第四节 |
阿里云免费「DDoS 基础防护」自动生效:清洗阈值与黑洞阈值查询路径 = 控制台 → 安全 → DDoS 基础防护 → 实例列表(北京区黑洞阈值约 5Gbps 量级,以控制台实际显示为准)。超过黑洞阈值即封 IP,黑洞期默认 2.5h,反复被打会延长到 24h,期间无法主动解封。
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20 找 top IP;再看打的路径。deny 1.2.3.4; → nginx -t && systemctl reload nginx;或阿里云安全组加拒绝规则(源 IP /32,优先级 1)。/etc/nginx/conf.d/jiu.conf 里 jiu_pub 从 10r/s 降到 2r/s、jiu_shoplist 降到 1r/s、jiu_conn 降到 5,reload。注意这是临时手改线上,恢复后必须回滚(下次 server 发版会覆盖为仓库版本)。/opt/jiu/config/production.env 调小 RATELIMIT_* 后 systemctl restart jiu。本机和 nginx 层无能为力(流量在进机器前就占满管道),只有两条路,二选一:
182.92.213.171,转发 443/80,回源保持 HTTPS。| 层 | 措施 | 位置 |
|---|---|---|
| 阿里云 | 免费 DDoS 基础防护(自动清洗);安全组仅放行 22/80/443/ICMP | 控制台 · sg-2ze5y7jqe889jmqb6ci4 |
| nginx | limit_req(公开 10r/s、店铺列表 2r/s)+ limit_conn(20/10/下载 3)+ 抓取库/空 UA 403 + 图片防盗链 + 下载限速 | deploy/nginx-jiu-ali.conf(CI 下发) |
| 应用 | per-IP 分钟限流 + 每店 RPS + 登录失败锁 + 日配额(单品 1000/日、列表 300/日);状态外置 redis 跨重启 | backend/internal/ratelimit + middleware |