GeoIP#

使用预编译的 MaxMind 数据库,根据客户端 IP 地址创建变量。

当使用支持 IPv6 的数据库时,IPv4 地址会被查找为 IPv4 映射的 IPv6 地址。

从源代码构建 时,此模块默认不构建;需要使用 ‑‑with‑stream_geoip_module 构建选项 启用。

重要

此模块需要 MaxMind GeoIP 库。

配置示例#

stream {
    geoip_country         GeoIP.dat;
    geoip_city            GeoLiteCity.dat;

    map $geoip_city_continent_code $nearest_server {
        default        example.com;
        EU             eu.example.com;
        NA             na.example.com;
        AS             as.example.com;
    }
#   ...
}

指令#

geoip_country#

语法

geoip_country file;

默认值

上下文

stream

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

$geoip_country_code

两字母国家代码,例如,“RU”,“US”。

$geoip_country_code3

三字母国家代码,例如,“RUS”,“USA”。

$geoip_country_name

国家名称,例如,“Russian Federation”,“United States”。

geoip_city#

语法

geoip_city file;

默认值

上下文

stream

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

$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 中的 地理定位

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

默认值

上下文

stream

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

$geoip_org

组织名称,例如,“The University of Melbourne”。