NginxでUserAgentを判定してアクセス拒否($http_user_agent)
2013年7月19日
ログを見ていると謎のbotが結構な勢いでアクセスしてきてるんですが、検索サイトとか登録したサイトではないようなので、アクセスを拒否したいと思います。
ログを確認したところ、特定のUserAgent(通常のブラウザではない)ではないようなので、下記を追加。
server {
# 色々設定
# 追加 ------
if ( $http_user_agent ~* (hogebot|foobot) ) {
return 403;
}
# ----------
# 色々設定
}
これでUserAgentに「hogebot」か「foobot」が含まれている場合は、403を返します。
if条件の「~*」は、大文字小文字を区別しない条件です。
大文字小文字を区別する場合は「~」のみで。
また、完全一致の場合は「=」にします。