mod_access

mod_access 允许您按 IP 地址过滤客户端。

access.deny (动作)

通过返回 403 状态码拒绝访问

access.deny;

access.check (动作)

根据客户端 IP 地址允许或拒绝访问

access.check rules;
规则
一个键值列表,将 "access" 和/或 "deny" 键映射到 CIDR 地址列表或 "all"。

根据规则检查客户端 IP 地址。默认情况下拒绝所有地址。最精确的匹配规则决定结果(“192.168.100.0/24” 优先于 “192.168.0.0/16”;类似于路由表);如果相同的 CIDR 同时出现在两个列表中,则执行第二个动作。“all” 是 “0.0.0.0/0” 和 “::/0” 的同义词,匹配所有 IPv4 和 IPv6 地址。

示例:限制本地网络访问

限制本地网络客户端的访问。拒绝规则并非严格必需,因为默认就是拒绝。本地网络的较小 CIDR 字符串会覆盖全局拒绝规则。

setup {
	module_load "mod_access";
}

access.check (
	"allow" => ("127.0.0.0/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"),
	"deny" => ("all")
);

示例:限制子网访问并设置例外

限制来自“192.168.10.0/24”的客户端访问,但拒绝“192.168.10.1”的访问。由于“192.168.10.1”(等同于“192.168.10.1/32”)是更精确的匹配,它会覆盖包含它的子网“192.168.10.0/24”的允许规则。

setup {
	module_load "mod_access";
}

access.check (
	"allow" => ("192.168.10.0/24"),
	"deny" => ("192.168.10.1")
);

access.redirect_url (选项)

如果访问被拒绝,则重定向的 URL (尚未实现)

access.redirect_url url;
默认值: 未设置

尚未实现

access.log_blocked (选项)

是否在访问被拒绝时记录日志(日志级别为 "info")

access.log_blocked url;
默认值: false