模块 ngx_stream_geoip_module

配置示例
指令
     geoip_country
     geoip_city
     geoip_org

`ngx_stream_geoip_module` 模块 (1.11.3) 使用预编译的 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 文件;
默认值
上下文 stream

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

$geoip_country_code
两字母国家代码,例如,“RU”、“US”。
$geoip_country_code3
三字母国家代码,例如,“RUS”、“USA”。
$geoip_country_name
国家名称,例如,“Russian Federation”、“United States”。

语法 geoip_city 文件;
默认值
上下文 stream

指定一个数据库,用于根据客户端 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 地区代码(也称为“metro code”),与 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 文件;
默认值
上下文 stream

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

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