主要观点:作者的网站突然被大量机器人访问和抓取数据,导致服务器资源紧张,如磁盘和 CPU 利用率过高,影响了自身对网站服务的访问。作者通过分析日志、使用 lnav 和 goaccess 工具,找出了问题所在,并采取了一系列措施来阻止机器人访问,如构建恶意用户代理列表、设置 Nginx 规则和使用 Fail2Ban 进行封禁,最终使服务器恢复正常,保障了网站的正常运行。
关键信息:
- 突然被大量机器人访问,如 Amazon、Facebook、OpenAI 等,导致服务器资源紧张。
- 使用 lnav 工具分析 Nginx 访问日志,找出问题来源和相关 IP 及用户代理。
- 通过构建用户代理列表和设置 Nginx 规则,如返回 403 拒绝访问,以及设置速率限制来阻止恶意访问。
- 使用 Fail2Ban 进行封禁,设置 24 小时封禁时间,有效减少了恶意访问。
- 最终使服务器恢复正常,保障了网站的正常运行,但作者表示将考虑扩展封禁列表和为合法服务设置例外。
重要细节:
- Zabbix 实例显示服务器磁盘被容器占用,Gitea 实例每天生成大量数据。
- 访问日志分析显示流量突然增加,从平均每秒 8 次请求增加到最多每秒 20 多次。
- 作者采取的阻止措施包括在 Nginx 配置中添加用户代理过滤和速率限制规则,以及在 Fail2Ban 配置中设置封禁规则。
- 通过 lnav 和 goaccess 工具可以查看相关统计信息和 IP 列表,以进一步了解恶意访问情况。
- 最终封禁了 735 个 IP,使服务器资源恢复正常,保障了网站的正常运行。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。