我想阻止一些用户代理,但是NGinx似乎看不到它。
我确实使用过地图 从http部分调用地图,并在服务器部分进行测试(如许多教程中所示)
map $http_user_agent $badagent {
default 0;
~*archive.org_bot 1;
~*Anemone 1;
~*Ant.com 1;
~*Baidu 1;
~*Bot/1.0 1;
~*Companybook 1;
~*Go-http-client 1;
~*Pcore-HTTP 1;
}
然后在服务器部分
if ($badagent) {
return 444;
}
我也尝试过
if ($badagent = 1) {
return 444;
}
为了简化起见,我什至尝试过:
if ($http_user_agent="Mozilla") {return 404;}
和
if ($http_user_agent = "Mozilla") {return 404;}
没有错误,但是即使重新启动后,我的浏览器也不会被阻止。我做错了什么?
答案 0 :(得分:0)
我找到了问题。
我有一个nginx.conf文件和一个mydomain.conf文件。
每当指令位于我的主要nginx.conf文件(已解析且是配置的一部分)中时,均不考虑指令/测试。 但是,一旦我将指令移至mydomain.conf文件中,一切就可以正常工作。