Module ngx_http_geoip_module

ngx_http_geoip_module模块(0.8.6)使用预编译的MaxMind数据库创建变量,其值取决于客户端 IP 地址。

当使用支持 IPv6 的数据库(1.3.12,1.2.7)时,会将 IPv4 地址查找为 IPv4 映射的 IPv6 地址。

默认情况下未构建此模块,应使用--with-http_geoip_module配置参数启用它。

Note

此模块需要MaxMind GeoIP库。

Example Configuration

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;
    ...

Directives

Syntax:geoip_country file;
Default:
Context:http

指定用于根据客户端 IP 地址确定国家/地区的数据库。使用此数据库时,可以使用以下变量:

$geoip_country_code

  • 两个字母的国家/地区代码,例如“ RU”,“ US”。

$geoip_country_code3

  • 三个字母的国家/地区代码,例如“ RUS”,“ USA”。

$geoip_country_name

  • 国家/地区名称,例如“ Russian Federation”,“ United States”。

Syntax:geoip_city file;
Default:
Context:http

指定用于根据客户端 IP 地址确定国家,地区和城市的数据库。使用此数据库时,可以使用以下变量:

$geoip_area_code

  • 电话区号(仅限美国)。

Note

由于不赞成使用相应的数据库字段,因此该变量可能包含过时的信息。

$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 中的geotargeting,美国的 DMA 区域代码(也称为“大都市代码”)。

$geoip_latitude

  • latitude.

$geoip_longitude

  • longitude.

$geoip_region

  • 两个符号的国家/地区代码(地区,地区,State,省,联邦土地等),例如“ 48”,“ DC”。

$geoip_region_name

  • 国家区域名称(区域,地区,State,省,联邦土地等),例如“ Moscow City”,“ District of Columbia”。

$geoip_city

  • 城市名称,例如“ Moscow”,“ Washington”。

$geoip_postal_code

  • postal code.

Syntax:geoip_org file;
Default:
Context:http

该指令出现在版本 1.0.3 中。

指定用于根据客户端 IP 地址确定组织的数据库。使用此数据库时,以下变量可用:

$geoip_org

  • 组织名称,例如“墨尔本大学”。

Syntax:geoip_proxy address | CIDR;
Default:
Context:http

该指令出现在版本 1.3.0 和 1.2.1 中。

定义可信地址。当请求来自受信任的地址时,将使用“ X-Forwarded-For”请求 Headers 字段中的地址代替。

Syntax:geoip_proxy_recursive on | off;
Default:geoip_proxy_recursive off;
Context:http

该指令出现在版本 1.3.0 和 1.2.1 中。

如果禁用了递归搜索,那么将使用在“ X-Forwarded-For”中发送的最后一个地址,而不是与受信任地址之一匹配的原始客户端地址。如果启用了递归搜索,则将使用“ X-Forwarded-For”中发送的最后一个不受信任的地址,而不是与受信任的地址之一匹配的原始客户端地址。