今天,网站受到的流量攻击还在持续。依旧是海量的广东 IP 请求,没有任何规律。参考前文:
尝试了 Nginx 返回两种状态码,但是都没有效果,攻击请求依旧:
- 403 Forbidden: 明确表示请求权限被拒绝
- 502:暗示我的服务已经挂了,大爷饶命
无奈╮(╯▽╰)╭,都没有用。这个刷流量的攻击方,既不是来爬内容的,也不是想把你网站拖垮,就是纯粹地刷流量。根本不在乎你返回啥。某书上有个大佬分析是部分 CDN 提供商实际是黑产,需要伪造流量,所以狂刷数据。下图是七牛云 CDN 的请求数统计,目前只能止住 CDN 的消耗,但是服务器源站的请求还在继续:
所以,干脆 Nginx 啥也不返回行不行。感觉返回 502 错误页的流量都是浪费带宽,毕竟国内服务器带宽贵如金。
Nginx 444 状态码
444 状态码是 nginx 自己定义的,不在标准HTTP状态码范围内。它的核心含义是:
Nginx 服务器主动关闭连接,不向客户端发送任何响应。
相比返回一个完整的错误页面(如 403 或 404, 502),直接关闭连接消耗的服务器资源(CPU、内存、带宽)更少,尤其是在面对大量无效或恶意请求时。甚好,非常符合我的需求。
Nginx 配置示例
# 在 server 或 http 块中
if ($http_user_agent ~* (BadBot|Scanner|Spammer)) {
return 444;
}
reload Nginx 配置
确认配置文件格式正确,并 reload Nginx 配置,使 444 状态码的配置生效。
sudo nginx -t
sudo nginx -s reload
😮💨,感觉搞服务器有时候不能有精神洁癖,被攻击就被攻击吧,只要服务器负载没有问题,你刷你的。 我也不纠结了。后面了解一下网友推荐的雷池 WAF,或者阿里云 ESA。由于服务器和域名都在阿里云,不想尝试腾讯的 EdgeOne 了。
关于作者 🌱
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式