Geo模块(Geo)


回目录

·摘要

这个模块创建一些变量,其值依赖于客户端的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 - 将一些没有定义的地址替换为0.0.0.0/0。
·include - 具有地址信息的文本文件,可以包含多个。
·proxy - 指定代理服务器地址(0.8.7)。
·ranges - 指定使用以地址池的形式定义地址(0.7.23),这个参数必须放在首位。

 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;
 }
conf/geo.conf文件内容:
 10.2.0.0/16      ru;
 192.168.2.0/24   ru;
该值将使用最大的参数,例如127.0.0.1将为“ru”,而不是“us”。
一个使用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; 
 }

·参考文档

HWLoadbalancerCheckErrors
Creating geo.conf From MaxMind GeoIP Country Database
Original Documentation
Nginx Http Geo Module

前进->Gzip压缩模块(Gzip)