如何在nginxconfiguration中阻止特定的用户代理

如何使用nginx阻止用户代理。 到目前为止,我有这样的事情:

if ($http_user_agent = "Mozilla/5.0 (Linux; Android 4.2.2; SGH-M919 Build/JDQ39) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22") { return 403;} 

这是来自堆栈溢出的类似线程。

我运行nginx作为cherrypy服务器的反向代理。 我打算使用nginx单独过滤某个用户代理,但上面的代码在我的服务器上不起作用。

是这样做的正确方法? 它没有包含在nginxconfiguration中的任何块中。 我应该将它添加到“http”块或“服务器”块

为了阻止特定的用户代理,我把这个代码包含在“服务器”块中:

 if ($http_user_agent = "Mozilla/5.0 (Linux; Android 4.2.2; SGH-M919 Build/JDQ39) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22"){ return 403; } 

并按预期工作。

如果是邪恶的 – 使用map指令。

请参阅Nginx最终坏机器人拦截器