如何使用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过滤某个用户代理,但上面的代码在我的服务器上不起作用。
这是正确的方法吗? 它没有包含在nginx配置中的任何块中。我应该将它添加到“http”块还是“服务器”块
答案 0 :(得分:5)
为了阻止特定用户代理,我将此代码包含在“server”块中:
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;
}
它按预期工作。
答案 1 :(得分:1)
If's are evil - 使用map
指令。