如何Nginx阻止用户代理
时间:2020-01-09 10:45:52 来源:igfitidea点击:
如何在Linux或者Unix之类的操作系统下使用Nginx Web服务器阻止http用户代理或者软件代理?
您可以使用GET/POST请求阻止任何http用户代理,这些请求会抓取您的内容或者尝试利用软件漏洞。
使用以下语法。
编辑/usr/local/nginx/conf/nginx.conf文件,执行:
# vi /usr/local/nginx/conf/nginx.conf
在此示例中,阻止名为wget的http用户代理:
## Block http user agent - wget ## if ($http_user_agent ~* (Wget) ) { return 403; } ## Block Software download user agents ## if ($http_user_agent ~* LWP::Simple|BBBike|wget) { return 403; }
保存并关闭文件。
重新加载Nginx Web服务器,执行:
# service nginx reload
或者
# /usr/local/nginx/sbin/nginx -s reload
如何阻止多个http用户代理?
使用以下语法:
if ($http_user_agent ~ (agent1|agent2|Foo|Wget|Catall Spider|Actheitroadobot) ) { return 403; }
不区分大小写的阻止:~* vs~
请注意~~使它不区分大小写,而不是~:
### case sensitive http user agent blocking ### if ($http_user_agent ~ (Catall Spider|Actheitroadobot) ) { return 403; } ### case insensitive http user agent blocking ### if ($http_user_agent ~* (foo|bar) ) { return 403; }