nginx
Webサーバーを常にプローブしているユーザーエージェントを拒否しようとしています。
.conf
ファイルにこれがある場合
## Block http user agent - morpheus fucking scanner ##
if ($http_user_agent ~* (morfeus fucking scanner|ZmEu)) {
return 403;
}
サービスを開始すると、次のエラーが発生します。
nginx: [emerg] invalid condition "$http_user_agent" in /etc/nginx/sites-enabled/siteXXX:19
nginx: configuration file /etc/nginx/nginx.conf test failed
その周りに引用符を付けると、開始されますが、期待どおりに拒否されません。
## Block http user agent - morpheus fucking scanner ##
if ($http_user_agent ~* "(morfeus fucking scanner|ZmEu)") {
return 403;
}
何か案は?大文字と小文字を区別しないユーザーエージェントの拒否を探しています。
角かっこを削除して引用符を追加するだけです。
if ($http_user_agent ~* "morfeus fucking scanner|ZmEu") {
return 403;
}
一致させようとしている文字列は何ですか?
正規表現は引用符で囲む必要がありますが、正規表現の特殊記号(、)と一致させる場合は| -\でエスケープする必要があります
これを試してください:$http_user_agent ~ "(morfeus fucking scanner)|ZmEu"