nginx拒绝用户代理在未封装在引号中时会导致错误

Pro*_*eur 3 configuration nginx deny server-setup

我试图拒绝一些我经常看到探测我的nginxWeb 服务器的用户代理。

如果我的.conf文件中有这个

 ## Block http user agent - morpheus fucking scanner ##
    if ($http_user_agent ~* (morfeus fucking scanner|ZmEu)) {
       return 403;
    }
Run Code Online (Sandbox Code Playgroud)

启动服务时出现以下错误:

nginx: [emerg] invalid condition "$http_user_agent" in /etc/nginx/sites-enabled/siteXXX:19
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

如果我在它周围加上引号,它会开始但不会像我期望的那样否认。

 ## Block http user agent - morpheus fucking scanner ##
    if ($http_user_agent ~* "(morfeus fucking scanner|ZmEu)") {
       return 403;
    }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我正在寻找不区分大小写的用户代理拒绝。

mgo*_*ven 12

只需去掉括号并添加引号:

if ($http_user_agent ~* "morfeus fucking scanner|ZmEu") {
    return 403;
}
Run Code Online (Sandbox Code Playgroud)