模块 ngx_http_geoip_module
| Example Configuration Directives geoip_country geoip_city geoip_org geoip_proxy geoip_proxy_recursive |
该模块 (0.8.6+) 使用预编译的MaxMindngx_http_geoip_module数据库创建变量,其值取决于客户端 IP 地址
。
使用支持 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 |
|---|---|
| 默认: | — |
| 语境: |
http |
指定用于根据客户端 IP 地址确定国家/地区的数据库。使用此数据库时,以下变量可用:
$geoip_country_code-
两个字母的国家/地区代码,例如“
RU”、“US”。 $geoip_country_code3-
三字母国家代码,例如“
RUS”、“USA”。 $geoip_country_name-
国家名称,例如“
Russian Federation”、“United States”。
| 句法: |
geoip_city |
|---|---|
| 默认: | — |
| 语境: |
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- 根据 Google AdWords API 中的 地理定位,美国的 DMA 区域代码(也称为“都市代码”)。
$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 |
|---|---|
| 默认: | — |
| 语境: |
http |
该指令出现在 1.0.3 版本中。
指定用于根据客户端 IP 地址确定组织的数据库。使用此数据库时,以下变量可用:
$geoip_org- 组织名称,例如“墨尔本大学”。
| 句法: |
geoip_proxy |
|---|---|
| 默认: | — |
| 语境: |
http |
该指令出现在版本 1.3.0 和 1.2.1 中。
定义可信地址。当请求来自可信地址时,将使用“X-Forwarded-For”请求标头字段中的地址。
| 句法: |
geoip_proxy_recursive |
|---|---|
| 默认: |
geoip_proxy_recursive off; |
| 语境: |
http |
该指令出现在版本 1.3.0 和 1.2.1 中。
如果禁用递归搜索,则将使用“X-Forwarded-For”中发送的最后一个地址,而不是与可信地址之一匹配的原始客户端地址。如果启用递归搜索,则将使用“X-Forwarded-For”中发送的最后一个不可信地址,而不是与可信地址之一匹配的原始客户端地址。
