geoip_proxy
`geoip_proxy` 指令用于配置 GeoIP 模块,以根据 proxy protocol 确定 IP 地址的地理位置。 — NGINX HTTP Core
geoip_proxy
http
语法geoip_proxy header_name;
默认值none
上下文http
模块NGINX HTTP Core
参数1
说明
`geoip_proxy` 指令为 NGINX 提供了一种利用 proxy protocol 获取客户端原始 IP 地址的方法,从而通过 GeoIP 数据库提高地理定位的准确性。尤其在请求从一个代理服务器转发到另一个代理服务器的环境中非常有用,因为请求中的地址可能无法准确反映客户端的实际地理位置。配置后,NGINX 会从指定的头部读取客户端的原始 IP 地址,而不是直接从客户端连接中读取。 该指令接受一个参数,指定要查找的头部名称,通常包含客户端的原始地址(例如 `X-Real-IP`)。在使用此指令时,必须确保上游代理正确填充该头部并提供有效的 IP,以便进行准确的 GeoIP 查询。配置不当可能导致在日志记录或访问控制时记录不正确的地理数据。 此指令在 HTTP 上下文中生效,允许它在 server 块之间全局适用或在特定 location 块中使用。对头部的正确评估在收到请求时执行,因此在部署中需要在任何中间代理之间保持一致的配置。
配置示例
http {
geoip_proxy X-Forwarded-For;
}⚠
确保你的上游代理包含正确的头部,否则 NGINX 可能会读取错误的 IP 地址。
⚠
配置错误可能导致安全漏洞,因为对 IP 的不当处理可能会使你的应用程序暴露于 IP 欺骗等攻击。
⚠
此指令仅在 GeoIP module 已在 NGINX 中编译并启用时才有效。