访问#

该模块根据客户端 IP 地址或网络控制对服务器资源的访问。它允许允许或阻止特定的 IP、IP 范围或 UNIX 域套接字,以通过限制对网站或应用程序敏感区域的访问来增强安全性。

访问还可以通过使用 Auth Basic 模块的密码或基于 Auth Request 模块的子请求结果进行限制。要同时应用地址和密码限制,请使用 satisfy 指令。

配置示例#

location / {

    deny 192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny all;
}

规则按顺序评估,直到找到匹配项。在此示例中,仅允许访问 IPv4 网络 10.1.1.0/16192.168.1.0/24,排除特定地址 192.168.1.1,以及 IPv6 网络 2001:0db8::/32。当规则较多时,最好使用 Geo 模块中的变量。

指令#

allow#

语法

allow address | CIDR | unix: | all;

默认

上下文

http, server, location, limit_except

允许对指定网络或地址的访问。 特殊值 all 表示所有客户端 IP。

Added in version 1.5.1: 特殊值 unix: 允许对任何 UNIX 域套接字的访问。

deny#

语法

deny address | CIDR | unix: | all;

默认

上下文

http, server, location, limit_except

拒绝对指定网络或地址的访问。 特殊值 all 表示所有客户端 IP。

Added in version 1.5.1: 特殊值 unix: 拒绝对任何 UNIX 域套接字的访问。