此页面版本:2016-06-08
ngx_http_geoip_module模块(0.8.6+)创建基于客户端IP的变量,并使用预编译的MaxMind数据库。
当使用支持IPv6的数据库(1.3.12+,1.2.7+)时,IPv4地址会显示为IPv4映射的IPv6地址。
该模块默认不会构建,需要用–with-http_geoip_module编译参数。
该模块需要MaxMind GeoIP库。
示例配置
http {
geoip_country GeoIP.dat;
geoip_city GeoLiteCity.dat;
geoip_proxy 192.168.100.0/24;
geoip_proxy 2001:0db8::/32;
geoip_proxy_recursive on;
...
geoip_country
语法:geoip_country file
默认:—
上下文:http
指定一个数据库用于指定依赖于客户端IP地址的国家。下面的变量在使用数据库时可用:
$geoip_country_code
两个字母的国家代码,例如“RU”,“US”
$geoip_country_code3
三个字母的国家代码,例如“RUS”,“USA”
$geoip_country_name
国家名称,例如“Russian Federation”,“United States”
geoip_city
语法:geoip_city file
默认:—
上下文:http
指定一个数据库,用于决定依赖于客户端IP地址的国家、地区、城市信息。下面的变量在使用数据库时可用:
$geoip_area_code
电话区号(仅美国)
该变量由于相应的数据库会过时,所以信息可能过时。
$geoip_city_continent_code
两字母的大陆代码,如“EU”,“NA”
$geoip_city_country_code
两字母的国家代码,如“RU”,“US”
$geoip_city_country_code3
三字母的国家代码,如“RUS”,“USA”
$geoip_city_country_name
国家名,例如“Russian Federation”,“United States”
$geoip_dma_code
美国DMA地区代码(亦称“地铁代码”),依据Google AdWords API geotargeting
$geoip_latitude
纬度
$geoip_longitude
经度
$geoip_region
两标识符的国家区域代码(区域、范围、州、省、联邦),例如“48”、“DC”
$geoip_region_name
国家区域名(区域、范围、州、省、联邦),例如“Moscow City”,“District of Columbia”
$geoip_city
城市名,例如“Moscow”,“Washington”
$geoip_postal_code
邮政编码
geoip_org
语法:geoip_org file
默认:—
上下文:http
版本:1.0.3+
指定数据库用于决定依赖于客户端IP地址的机构。下面的变量在使用数据库时可用:
$geoip_org
组织名,例如“The University of Melbourne”
geoip_proxy
语法:geoip_proxy address | CIDR
默认:—
上下文:http
版本:1.3.0+,1.2.1+
定义可信地址。当请求来自于可信地址,将会使用请求头中的“X-Forwarded-For”。
geoip_proxy_recursive
语法:geoip_proxy_recursive on | off
默认:geoip_proxy_recursive off
上下文:http
版本:1.3.0+,1.2.1+
如果递归查询禁用,“X-Forwarded-For”中最后一个地址将被使用。
如果递归查询启用,会用“X-Forwarded-For”中最后一个不可信地址。