7 nginx
我正在使用nginx latest web server
. 我如何检查$remote_addr
ip 是否不在指定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 次 |
最近记录: |