$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 头。