$http_via

Переменная $http_via получает значение заголовка 'via', отправленного вышестоящими прокси в HTTP-запросах. — NGINX Core (HTTP)

$http_via NGINX Core (HTTP)

Описание

Переменная `$http_via` в NGINX используется для доступа к значению заголовка 'via' из HTTP-запроса. Этот заголовок обычно добавляют веб‑прокси, чтобы указать промежуточные серверы, через которые прошёл запрос, что даёт представление о маршрутизации запроса и задействованных механизмах кэширования. Когда клиент отправляет запрос через один или несколько прокси, заголовок 'via' добавляется каждым прокси, конкатенируя информацию и позволяя нижестоящим серверам анализировать путь запроса. Установка этой переменной происходит автоматически при обработке 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-заголовки в запросах, отправленных непосредственно на сервер.