7 nginx
我正在使用nginx latest web server. 我如何检查$remote_addrip 是否不在指定CIDR range和return appropriate error code.
如果 IP 不在特定 CIDR IP 范围内,我想返回特定的错误代码。
我如何为 CIDR IP 范围执行此操作?例如
Mic*_*ton 17
您可以使用该geo指令来指定 IP 地址范围。
下面是一个例子:
geo $block_these_turkeys {
default 0;
192.0.2.0/24 1;
198.51.100.0/24 1;
203.0.113.0/24 1;
2001:db8::/32 1;
}
Run Code Online (Sandbox Code Playgroud)
这必须在http块中,在任何server块之外。
它$block_these_turkeys根据 IP 地址是否与列表之一匹配,将变量设置为给定值。
稍后,在server要使用它的块中,执行以下操作:
server {
....
if ($block_these_turkeys) {
return 444;
}
....
}
Run Code Online (Sandbox Code Playgroud)
通过反转该值,您可以改为允许IP 范围。
geo $block_almost_everybody {
default 1;
192.0.2.0/24 0;
198.51.100.0/24 0;
203.0.113.0/24 0;
2001:db8::/32 0;
}
server {
....
if ($block_almost_everybody) {
return 444;
}
....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16898 次 |
| 最近记录: |