$http_via
$http_via 变量检索由上游代理在 HTTP 请求中发送的 'via' 头的值。 — NGINX Core (HTTP)
$http_via
NGINX Core (HTTP)
说明
`$http_via` 变量在 NGINX 中用于访问来自 HTTP 请求的 'via' 头的值。该头通常由 web 代理添加,用于指示请求经过的中间服务器,从而提供关于请求路由以及相关缓存机制的洞察。当客户端通过一个或多个代理发送请求时,每个代理都会附加 'via' 头,串联这些信息,使下游服务器能够分析请求路径。\n\n当 NGINX 处理传入请求的头时,会自动设置此变量。如果存在 'via' 头,`$http_via` 将保存其值;如果请求经过多个代理,值可能包含多段信息。该头的常见值可能包括代理服务器的软件及其版本等详细信息。如果请求没有 'via' 头,则该变量为空,这允许在服务器配置中根据该头的存在与否进行条件逻辑。
配置示例
server {
listen 80;
location / {
if ($http_via) {
add_header X-Proxy-Server $http_via;
}
proxy_pass http://backend;
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保上游代理实际附加了 'via' 头,否则该变量将为空。
⚠
谨慎依赖 `$http_via` 的存在用于安全或访问控制,因为任何客户端都可以在直接发往服务器的请求中伪造 HTTP 头。