proxy_set_header

Директива `proxy_set_header` позволяет изменять заголовки, отправляемые на проксируемый сервер.

Синтаксисproxy_set_header name value;
По умолчаниюnone
Контекстhttp, server, location
Аргументы2

Описание

Директива proxy_set_header используется в NGINX для изменения или определения заголовков, которые отправляются от сервера NGINX на upstream-сервер в контексте проксирования. Это особенно полезно для передачи дополнительной информации, например исходных данных о клиенте, или для изменения существующих заголовков перед пересылкой запросов на проксируемый бэкенд.

Директива принимает два аргумента: заголовок, который вы хотите задать или изменить, и значение, которое нужно присвоить этому заголовку. Вы можете использовать переменные, предоставляемые NGINX, что позволяет задавать динамические значения заголовков, адаптирующиеся в зависимости от контекста запроса. Например, вы можете захотеть установить заголовок X-Real-IP равным IP-адресу клиента. При необходимости вы также можете переопределять существующие значения заголовков. Важно отметить, что если заголовок задаётся несколько раз с одним и тем же именем, приоритет будет у последнего заданного значения.

Эта директива может использоваться в разных контекстах, включая блоки http, server и location, обеспечивая гибкость в обработке заголовков для различных частей конфигурации сервера. Правильная настройка заголовков критически важна для корректной работы бэкенд-приложений, поскольку они часто полагаются на HTTP-заголовки для маршрутизации, аутентификации и других задач управления запросами.

Пример конфига

location /api {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

Заголовки, установленные с помощью proxy_set_header, накапливаются; если заголовок определён несколько раз, используется последнее заданное значение.

Убедитесь, что директива определена в правильном контексте (http, server или location), чтобы избежать ошибок конфигурации.

Использование простых значений вместо переменных (например, фиксированных строк) может не дать ожидаемых результатов в динамических случаях.

← Ко всем директивам