geoip_city

`geoip_city` 指令允许配置基于 IP 地址的地理定位查询以返回城市级信息。 — NGINX HTTP Core

geoip_city
http
语法geoip_city /path/to/GeoIPCity.dat;
默认值none
上下文http
模块NGINX HTTP Core
参数1-2

说明

`geoip_city` 指令旨在通过访问 GeoIP 数据库来增强 NGINX HTTP 服务器基于客户端 IP 地址作出地理判断的能力。通过指定 GeoIP 城市数据库的路径,该指令使 NGINX 能够根据传入请求的地理位置确定并设置变量。 当在 `http` 上下文中使用 `geoip_city` 指令时,它接受一个或两个参数:GeoIP 城市数据库文件的路径,以及可选的第二个参数,用于指定处理格式错误 IP 地址的标志。该指令处理传入请求,将客户端的 IP 与指定 GeoIP 数据库中的条目匹配,并使城市级别的地理数据(如城市名、区域和国家)可在配置中使用。然后,这些地理信息可以用于访问控制规则、日志文件格式化,甚至用于内容个性化。 此指令通常对需要基于用户地理位置进行定向内容投放的应用有益,例如本地化广告或遵守当地法规。重要的是确保 GeoIP 数据库文件保持更新,因为 IP 与位置的映射可能经常变化。错误或过时的数据可能因地理定位粒度不准确而导致糟糕的用户体验。

配置示例

http {
    geoip_city /usr/share/GeoIP/GeoIPCity.dat;
    server {
        location / {
            if ($geoip_city) {
                add_header X-City $geoip_city;
            }
        }
    }
}

确保指定的 GeoIP 数据库文件存在并且 NGINX 用户可以访问它。

使用过期的 GeoIP 数据库可能导致地理位置信息不准确。

如果使用基于变量的访问控制,请确保已设置适当的条件以处理未返回任何地理位置信息的情况。