最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx禁止特定用户代理访问网站配置
时间:2022-06-30 18:28:37 编辑:袖梨 来源:一聚教程网
如何禁止特定UA
我们不希望被使用wget或者curl来下载我的文件,怎么做呢?
编辑nginx配置文件,以下内容放在http配置段,那么整个nginx都生效。如果放到server里,那么一个域名生效,你放哪,哪就有效!
if ($http_user_agent ~* (curl) ) {
return 404;
}
禁止多个UA
if ($http_user_agent ~* (wget|curl) ) {
return 404;
}
当然你可以把只要是代理的全部干掉 Nginx阻止用户代理
修改nginx.conf
if ($http_user_agent ~* (Wget|ab) ) {
return 403;
}
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;
}
重启nginx
# /usr/local/nginx-1.7.0/sbin/nginx -s reload
在Nginx中将特定用户代理列入黑名单
要配置用户代理阻挡列表,请打开你的网站的nginx配置文件,找到server定义部分。该文件可能会放在不同的地方,这取决于你的nginx配置或Linux版本(如,/etc/nginx/nginx.conf,/etc/nginx/sites-enabled/
server {
listen 80 default_server;
server_name xmodulo.com;
root /usr/share/nginx/html;
....
}
在打开该配置文件并找到 server 部分后,添加以下 if 声明到该部分内的某个地方。
server {
listen 80 default_server;
server_name xmodulo.com;
root /usr/share/nginx/html;
# 大小写敏感的匹配
if ($http_user_agent ~ (Antivirx|Arian) {
return 403;
}
#大小写无关的匹配
if ($http_user_agent ~* (netcrawl|npbot|malicious)) {
return 403;
}
....
}
如你所想,这些 if 声明使用正则表达式匹配了任意不良用户字符串,并向匹配的对象返回403 HTTP状态码。 $http_user_agent是HTTP请求中的一个包含有用户代理字符串的变量。‘~'操作符针对用户代理字符串进行大小写敏感匹配,而‘~*'操作符则进行大小写无关匹配。‘|'操作符是逻辑或,因此,你可以在 if 声明中放入众多的用户代理关键字,然后将它们全部阻挡掉。
在修改配置文件后,你必须重新加载nginx以激活阻挡:
$ sudo /path/to/nginx -s reload
你可以通过使用带有 “--user-agent” 选项的 wget 测试用户代理阻挡。
$ wget --user-agent "malicious bot" http://
相关文章
- 《绝区零》伊芙琳培养材料汇总 01-24
- 《无限暖暖》1.2春节兑换码一览 01-24
- 《网上国网》查询阶梯档位方法 01-24
- 《蛋仔派对》神游贺岁盲盒获取方法 01-24
- 《炉石传说》星际联动盗贼卡组玩法介绍 01-24
- 皮革珊瑚属于珊瑚中的 01-24