我这小站日均也就几百ip访问
昨天突然飙到3万ip
![]()
cpu和带宽直接干满了高亮红灯
里面的ip五花八门
移动的,电信的,美国的,法国,英国的……
这是访问次数最多的几个
![]()
访问1~2次的那种根本数不过来
uv访问8万 pv直接干到了11万多
导致cpu堵塞 带宽占满,正常用户根本打不开
这里面既有ai爬虫,又有工具恶意访问
先解决友好的爬虫问题:
直接在robots.txt文件写入
- User-agent: GPTBot
- Disallow: /
- User-agent: OAI-SearchBot
- Disallow: /
- User-agent: ClaudeBot
- Disallow: /
- User-agent: Claude-SearchBot
- Disallow: /
- User-agent: CCBot
- Disallow: /
- User-agent: Google-Extended
- Disallow:
有些ai爬虫并不鸟上面那个协议
在网站配置文件第一行插入
- # 拦截 AI 爬虫 Map 规则
- map $http_user_agent $block_ai_bot {
- default 0;
- "~*(GPTBot|Claude-SearchBot|Amzn-SearchBot|OAI-SearchBot|CCBot)" 1;
- }
拉到最底部(就在 include enable-php-xx.conf; 的附近)。
在下一行插入
- # 拦截 AI 爬虫执行
- if ($block_ai_bot) {
- return 444;
- }
自此ai爬虫部分得到遏制
那么再解决工具恶意访问的问题
恶意的自动化脚本(俗称 CC 攻击 或 扫号机)。
拉到最顶部,在刚才我们加的那段 map 规则的下面,空一行,粘贴下面这段代码:
- # 定义限流区域,名为 ddos_limit,每秒最多允许 2 个请求,突发峰值允许 5 个
- limit_req_zone $binary_remote_addr zone=ddos_limit:10m rate=2r/s;
在底部日志输出的上一行插入
- # 强力限速
- limit_req zone=ddos_limit burst=5 nodelay;
好了 这下清净了 我本以为可以高枕无忧了
结果第二天更猛
![]()
![]()
全是分布式网络访问,根本不带ai标识
好嘛,又一次爆红,堵塞503打不开
把日志喂给大模型,
发现都是搜索类的访问,导致不断的读取数据库造成堵塞!
这次屏蔽所有带搜索的访问
Nginx → 设置 → 配置修改,在 http { 里加入:
- # 搜索接口限流池:单IP每秒1个请求
- limit_req_zone $binary_remote_addr zone=search_limit:10m rate=1r/s;
- # 恶意爬虫UA识别
- map $http_user_agent $bad_crawler {
- default 0;
- # Meta 全家桶
- "~*meta-externalagent" 1;
- "~*facebookexternalhit" 1;
- # Amazon 爬虫
- "~*Amzn-SearchBot" 1;
- # GPT 爬虫
- "~*GPTBot" 1;
- # 空UA或脚本UA
- "~*" 1;
- "~*python" 1;
- "~*curl" 1;
- "~*scrapy" 1;
- }
配置文件,
删除昨天插入的代码
在 server括号里加入:
- # ==========================================
- # 搜索接口专项防护
- # ==========================================
- location ^~ /search {
- # 恶意爬虫直接掐断(最省资源)
- if ($bad_crawler = 1) {
- return 444;
- }
-
- # 所有IP访问/search都限流:每秒1个,突发3个
- limit_req zone=search_limit burst=3 nodelay;
- limit_req_status 429;
-
- # 超长URL直接掐断(你日志里那些300+字符的URL)
- if ($request_uri ~* "^.{200,}") {
- return 444;
- }
-
- # 正常转发给PHP处理
- try_files $uri $uri/ /index.php?$args;
- }
彻底解决堵塞问题
![]()
后面发现自己也搜索不了,把参数改大了还是不行
先这么着吧,至少打的开了,搜索用不了就用不了吧!
哎 心力交瘁的两天!
![]()
随手一赞 手留余香!
赞(52)