$proxy_add_via
变量 $proxy_add_via 用于在 NGINX 转发的 HTTP 请求中附加 'Via' 头。 — NGINX Core (HTTP)
$proxy_add_via
NGINX Core (HTTP)
说明
当 HTTP 请求被 NGINX 转发到另一个服务器时,变量 $proxy_add_via 由 NGINX 动态生成。它构建一个 'Via' 头,用于标识所使用的代理方式。该变量通常在请求被代理时设置为格式 '1.1 NGINX',表示所使用的协议版本及服务器名称。这在调试和管理缓存系统时尤其有用,因为它允许客户端应用和中间代理追踪请求通过 NGINX 代理的路径。\n\n通常在配置中使用 `proxy_pass` 指令时会设置此变量。例如,如果为上游服务器正确配置了 `proxy_pass` 指令,NGINX 将为转发到该服务器的所有请求自动填充 $proxy_add_via 为相应的值。如果多个代理串联,'Via' 头将反映请求所经过的完整路径,从而在共享缓存和路由机制中实现更好的控制与可见性。典型值可能包括 '1.1 NGINX',或在与 NGINX 一起使用其他代理服务时指示这些服务。
配置示例
location /api {
proxy_pass http://backend_service;
proxy_set_header Host $host;
add_header Via $proxy_add_via;
}子系统
http可缓存
是上下文
http, server, location⚠
确保 'add_header' 指令在正确的上下文中设置,以便响应中能包含该头(例如在必要时使用 `always`)。
⚠
'Via' 头可能会暴露敏感的服务器信息,在配置面向公网的代理时请注意这一点。
⚠
在运行多个 NGINX 实例时,每个实例可能会附加其 'Via' 头,如果未妥善管理,可能会导致形成很长的链条。