如何使用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最终坏机器人拦截器