Nginx Geo模块

Geo模块:默认编译进Nginx , 通过–without-http_geo_module禁用。

Geo功能:根据IP地址创建新变量。

Geo指令

Syntax: geo [$address] $variable { ... }
Default: ---
Context: http

规则:

1、如果geo指令不输入$address ,那么默认使用$remote_addr 变量作为IP地址 。

2、{} 内的指令匹配:优先最长匹配

1、通过IP地址及子网掩码的方式,定义IP范围,当IP地址在范围内时新变量使用其后的参数值。
2、default指定了当以上范围都未匹配上时,新变量的默认值。
3、通过proxy指令指定可信地址,此时remote_addr的值为X-Forwarded-For头部值中的最后一个 IP地址。
4、proxy_recursive允许循环地址搜索。
5、include , 优化可读性。
6、delete 删除指定网络。

配置示例

geo $country {
default CN;
include conf/geo.conf;
proxy 192.168.20.248;

127.0.0.0/24 US;
127.0.0.1/32 RU;
10.1.0.0/16 UK;
}
Tags:

添加评论

电子邮件地址不会被公开。 必填项已用*标注