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 文件中的指令,然后一切正常。