2014-03-03 48 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; 
} 

,並擔任預期。