模块 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”。