nginx拒绝或允许指定IP,是使用模块HTTP访问控制模块(HTTP Access).

控制规则按照声明的顺序进行检查,首条匹配IP的访问规则将被启用。

location / {

  deny    192.168.1.1;

  allow   192.168.1.0/24;

  allow   10.1.1.0/16;

  deny    all;

}

上面的例子中仅允许192.168.1.0/24和10.1.1.0/16网络段访问这个location字段,但192.168.1.1是个例外。

注意规则的匹配顺序,如果你使用过apache你可能会认为你可以随意控制规则的顺序并且他们能够正常的工作,但实际上不行。

下面的这个例子将拒绝掉所有的连接:

location / {

  #这里将永远输出403错误。

  deny all;

  #这些指令不会被启用,因为到达的连接在第一条已经被拒绝

  deny    192.168.1.1;

  allow   192.168.1.0/24;

  allow   10.1.1.0/1

}