Http_user_agent 未在 Nginx 中检测到
Http_user_agent not detected in Nginx
我想阻止一些用户代理,但 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;}
没有错误,但即使重启后,我的浏览器也没有被阻止。我做错了什么?
我发现了问题。
我有一个 nginx.conf 文件和一个 mydomain.conf 文件。
只要指令在我的 nginx.conf 主文件中(已解析并且是配置的一部分),就不会考虑 instruction/test。
但是一旦我移动了 mydomain.conf 文件中的指令,然后一切正常。
我想阻止一些用户代理,但 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;}
没有错误,但即使重启后,我的浏览器也没有被阻止。我做错了什么?
我发现了问题。
我有一个 nginx.conf 文件和一个 mydomain.conf 文件。
只要指令在我的 nginx.conf 主文件中(已解析并且是配置的一部分),就不会考虑 instruction/test。 但是一旦我移动了 mydomain.conf 文件中的指令,然后一切正常。