GeoIP#
根据客户端 IP 地址创建变量并赋值,使用预编译的 MaxMind 数据库或其对应版本。
使用支持 IPv6 的数据库时,IPv4 地址将作为映射到 IPv6 的地址进行查找。
当 从源代码构建 时,默认不构建此模块;应通过 ‑‑with‑http_geoip_module
构建选项 进行启用。
重要
此模块需要 MaxMind GeoIP 数据库或类似的 MaxMind GeoLite2。
配置示例#
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;
...
指令#
geoip_country#
指定用于根据客户端 IP 地址确定国家的数据库。使用此数据库时,可用以下变量:
|
两位的国家代码,例如 "RU","US"。 |
|
三位的国家代码,例如 "RUS","USA"。 |
|
国家名称,例如 "Russian Federation","United States"。 |
geoip_city#
指定用于根据客户端 IP 地址确定国家、地区和城市的数据库。使用此数据库时,可用以下变量:
|
两位的大陆代码,例如 "EU","NA"。 |
|
两位的国家代码,例如 "RU","US"。 |
|
三位的国家代码,例如 "RUS","USA"。 |
|
国家名称,例如 "Russian Federation","United States"。 |
|
美国的 DMA 区域代码(也称为 "metro code"),根据 Google AdWords API 中的 地理定位。 |
|
纬度。 |
|
经度。 |
|
两位的国家地区代码(地区、领地、州、省、联邦土地等),例如 "48","DC"。 |
|
国家地区名称(地区、领地、州、省、联邦土地等),例如 "Moscow City","District of Columbia"。 |
|
城市名称,例如 "Moscow","Washington"。 |
|
邮政编码。 |
geoip_org#
指定用于根据客户端 IP 地址确定组织的数据库。使用此数据库时,可用以下变量:
|
组织名称,例如 "The University of Melbourne"。 |
geoip_proxy#
定义可信任地址。当请求来自可信任地址时,将使用 "X-Forwarded-For" 请求头字段中的地址。
geoip_proxy_recursive#
如果禁用递归搜索,则将使用 "X-Forwarded-For" 中发送的最后一个地址,而不是与可信任地址匹配的原始客户端地址。如果启用递归搜索,则将使用 "X-Forwarded-For" 中发送的最后一个非可信任地址,而不是与可信任地址匹配的原始客户端地址。