【问题标题】:How to block pingdom bots in nginx?如何在 nginx 中阻止 pingdom 机器人?
【发布时间】:2014-10-05 22:46:15
【问题描述】:

考虑到 Pingdom 是一个享有盛誉的网站,我尝试订阅他们的正常运行时间监控服务。然而,即使我设置了 5 分钟的间隔,他们的机器人 Pingdom.com_bot_version_1.4 仍然不是每秒一次,而是每秒数十次!导致每分钟数千次访问!

然后我试图完全取消服务,但仍然被他们的机器人轰炸。我试图阻止 robots.txt,但显然他们扼杀了它。接下来,我尝试使用以下命令阻止 nginx.conf:

if ($http_user_agent ~* Pingdom.com_bot) {
        return 403;
}

它有效,但我在 access.log 中看到很多 503 错误。如何不记录这个机器人?真的真的很烦。我后悔订阅了他们的服务。

【问题讨论】:

  • 鉴于他们网站的高声誉,我怀疑这是故意的。为什么不联系他们的支持? FWIW,我在我的网站上使用 Pingdom 并看到它遵守我指定的时间间隔。
  • 谢谢,但到目前为止我还没有收到他们的任何回复。
  • @user1801605 如果你设法解决了,你可以在这里发布你的答案吗?谢谢

标签: nginx bots pingdom


【解决方案1】:

这是一个帖子about blocking w00tw00t,您可以轻松采纳。

您最容易适应的选择可能是使用fail2ban。

使用失败正则表达式触发您的 403 错误。

类似

[Definition]
failregex =  ^<HOST> .* "(GET|POST|HEAD).*HTTP.*" 403 [0-9]{1,} ".+" ".+"$
ignoreregex=

在 /etc/fail2ban/filter.d/nginx-pindotban.conf 中

[pingdotban]
enabled = true
port = http,https
filter = nginx-pingdotban
logpath = /path/to/nginx/access.log
maxretry = 5
bantime = 360000

在 /etc/fail2ban/jail.conf 中

您可以使用

测试正则表达式
fail2ban-regex logfile /etc/fail2ban/filter.d/nging-pingdotban.conf

iptable 变体也可以采用类似

iptables -A INPUT -p tcp --dport 80 -m string --algo bm --string "the useragent" -j DROP

【讨论】:

  • 谢谢,但有点复杂。我最终使用 nginx 命令来阻止机器人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-20
  • 2020-02-09
  • 1970-01-01
  • 2011-10-28
  • 2017-12-05
  • 2021-04-15
相关资源
最近更新 更多