$proxy_host
变量 $proxy_host 包含被代理到的 upstream 服务器的主机名。 — NGINX Core (HTTP)
$proxy_host
NGINX Core (HTTP)
说明
在 NGINX 中,变量 $proxy_host 在将客户端请求转发到后端服务器的反向代理配置中起着关键作用。当请求被代理时,该变量被设置为 proxy_pass 指令中指定 URL 的主机部分。它反映了配置文件中代理设置决定的 upstream 服务器的主机名。 在请求处理过程中可以使用 $proxy_host 变量,特别是在请求被代理的上下文中,例如在使用 proxy_pass 指令的 location 块内。如果 upstream 服务器是用主机名或 IP 地址定义的,$proxy_host 会返回该值,从而可以根据目标服务器的标识动态处理请求。常见的 $proxy_host 值可能是像 "api.example.com" 这样的实际主机名,或者如果在 upstream 定义中直接指定了 IP,则为该 IP 地址。 在使用多个 upstream 服务器时,该变量对于日志记录和调试非常重要。它有助于跟踪请求被发送到哪个服务器,尤其是在处理负载均衡配置时。它也可用于构造自定义请求头或根据解析得到的 upstream 主机名修改请求。
配置示例
location /api {
proxy_pass http://backend;
proxy_set_header Host $proxy_host;
}子系统
http可缓存
否上下文
http, server, location⚠
$proxy_host 在未正确配置 proxying 或 upstream server 无法访问 时将为空。
⚠
确保 proxy_pass 指令解析为有效的 upstream,以避免出现意外行为。