在Nginx中未检测到Http_user_agent

时间:2019-05-26 22:14:58

标签: nginx nginx-config

我想阻止一些用户代理,但是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;}

没有错误,但是即使重新启动后,我的浏览器也不会被阻止。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我找到了问题。

我有一个nginx.conf文件和一个mydomain.conf文件。

每当指令位于我的主要nginx.conf文件(已解析且是配置的一部分)中时,均不考虑指令/测试。 但是,一旦我将指令移至mydomain.conf文件中,一切就可以正常工作。