2014-03-03 49 views
2

如何使用nginx阻止用户代理。 到目前为止,我有这样的事情:如何阻止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

您是在哪里试用的?你说它不起作用。 –

+0

我已编辑帖子以包含您所寻求的信息。谢谢。 – lordzouga

+0

根据文档http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#如果if语境位于位置或服务器内,请尝试将其添加到您的服务器块内,或者如果您想要'如果'只发生在特定的地点。 –

回答

3

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; 
} 

,并担任预期。