如何在nginx中阻止pingdom机器人?

时间:2014-08-12 18:28:30

标签: nginx bots pingdom

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

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

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

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

1 个答案:

答案 0 :(得分:0)

以下是您可以轻松采用的帖子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