$proxy_add_via

Переменная $proxy_add_via используется для добавления заголовка 'Via' к HTTP-запросам, проксируемым через NGINX. — NGINX Core (HTTP)

$proxy_add_via NGINX Core (HTTP)

Описание

Переменная $proxy_add_via динамически формируется NGINX, когда HTTP-запрос проксируется на другой сервер. Она формирует заголовок 'Via', который помогает идентифицировать использованный метод проксирования. Эта переменная обычно устанавливается в формате '1.1 NGINX' при проксировании запроса, указывая версию протокола и имя сервера. Это особенно полезно при отладке и управлении системами кэширования, поскольку позволяет клиентским приложениям и промежуточным прокси отслеживать происхождение запроса через NGINX-прокси. Эта переменная обычно задаётся при использовании директивы proxy_pass в конфигурации. Например, если директива `proxy_pass` правильно настроена для upstream server, 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', что приведёт к длинной цепочке, если это не управлять должным образом.