はじめに
Amazonbotから弊管理下にあるwikiへのアクセスがあまりにもひどい。
数秒に1回、しかも500個以上のIPから分散してbotアクセスしてくるのは、いくらなんでもやりすぎです。
UserAgentでbotだと名乗れば何をしてもいいわけではありません。
本当はこんなことをしなくてもよいようになればいいのですが、しょうがないのでUserAgentを見てbotの場合は簡易的に403を返すようにしました。
ついでに robots.txt
も設置しておきました。
下記の設定例は、私の方でnginxに行った設定を一般化したものです。
各種設定例
wiki.conf
server {
server_name wiki.example.com;
listen [::]:80;
listen 80;
root /var/www/wiki/
set $is_bot 0;
if ($http_user_agent ~ (Amazonbot|other_bot_user_agent)){
set $is_bot 1;
}
location ^~ /static/ {
alias /var/www/internal/static/;
internal;
}
location = /robots.txt {
rewrite ^(.*)$ /static/robots.txt;
}
location / {
if ($is_bot = 1) {
error_page 403 /static/bot_403.txt;
return 403;
}
}
}
robots.txt
User-agent: Amazonbot
Disallow: /
User-agent: other_bot_user_agent
Disallow: /
bot_403.txt
DISALLOWED REQUEST! FOLLOW GUIDANCE ON robots.txt!
※お好みで文面を変えたり、任意のHTMLを作成・設定してもよいと思います。
おわりに
おわりです。