模块 ngx_stream_geoip_module

geoip_country
geoip_city
geoip_org配置
Directives
示例

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

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

默认情况下,此模块不是构建的,应使用 configuration 参数启用它。--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;
    }
   ...
}

Directives

语法: geoip_country file;
默认值:
上下文: stream

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

$geoip_country_code
两个字母的国家/地区代码,例如 “”, “”.RUUS
$geoip_country_code3
三个字母的国家/地区代码,例如 “”, “”.RUSUSA
$geoip_country_name
国家/地区名称,例如 “”, “”.Russian FederationUnited States

语法: geoip_city file;
默认值:
上下文: stream

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

$geoip_area_code
电话区号(仅限美国)。
此变量可能包含过时的信息,因为 相应的 database 字段已弃用。
$geoip_city_continent_code
例如,两个字母的大陆代码 “”, “”.EUNA
$geoip_city_country_code
两个字母的国家/地区代码,例如 “”, “”.RUUS
$geoip_city_country_code3
三个字母的国家/地区代码,例如 “”, “”.RUSUSA
$geoip_city_country_name
国家/地区名称,例如 “”, “”.Russian FederationUnited States
$geoip_dma_code
根据 Google AdWords API 中的地理定位,美国的 DMA 区域代码(也称为“地铁代码”)。
$geoip_latitude
纬度。
$geoip_longitude
经度。
$geoip_region
双符号国家/地区区域代码(地区、领地、州、省、联邦土地 等),例如, “”, “”.48DC
$geoip_region_name
国家/地区名称(地区、领地、州、省、联邦土地 等),例如, “”, “”.Moscow CityDistrict of Columbia
$geoip_city
city name 等 “”, “”.MoscowWashington
$geoip_postal_code
邮政编码。

语法: geoip_org file;
默认值:
上下文: stream

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

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