HttpGeoModuleChs

= 摘要 =

这个模块创建一些变量，其值依赖于客户端的IP地址.

示例配置: geo $geo  { default         0; 127.0.0.1/32    2;  192.168.1.0/24   1;  10.1.0.0/16      1; }

= 指令 =

geo
语法: ''geo [$ip_variable] $variable { ... }''

默认值: none

语境: http

这个指令指定了一个客户端IP的所属国家，默认情况下它会查找$remote_addr变量，但在0.7.27版 本以后可以手工指定.

geo $arg_remote_addr $geo { ...; }

使用CIDR地址格式，另外，有4个特殊的参数:

示例说明:
 * delete – 删除指定的网络 (0.7.23).
 * default - the value of variable, if the client address does not correspond to any assigned address. It is possible so to write instead of default 0.0.0.0/0.
 * include - text file with addresses and values information. Several files can be inluded like this.
 * proxy - specifies the address of proxy server (0.8.7+). NEED MORE DESCRIPTION...
 * ranges – specifies that the addresses specified are in the form of ranges (0.7.23). This directive must be the first.

geo $country  { default         no; include         conf/geo.conf; 127.0.0.0/24    us; 127.0.0.1/32    ru; 10.1.0.0/16     ru; 192.168.1.0/24  uk; }

In the file conf/geo.conf: 10.2.0.0/16     ru; 192.168.2.0/24  ru;

The value will be the the one with maximum agreement. For example, the IP address 127.0.0.1 will get the value "ru", but not "us".

Example with ranges: geo $country  { ranges; default                   no; 127.0.0.0-127.0.0.0       us; 127.0.0.1-127.0.0.1       ru; 127.0.0.1-127.0.0.255     us; 10.1.0.0-10.1.255.255     ru; 192.168.1.0-192.168.1.255 uk; }

参考
原始俄文文档 原始英文wiki文档