scgi_pass_header

Директива `scgi_pass_header` позволяет указать заголовки, которые должны быть переданы от SCGI-сервера в ответе клиенту. — NGINX HTTP Core

scgi_pass_header
httpserverlocation
Синтаксисscgi_pass_header header_name;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `scgi_pass_header` используется в конфигурациях NGINX для управления пересылкой определённых заголовков от SCGI-сервера клиенту. При настройке NGINX гарантирует, что указанные заголовки, включённые в ответ SCGI, будут отправлены вместе с HTTP-ответом. Это особенно полезно для сохранения важной метадаты, предоставляемой SCGI-приложением, например типа содержимого или любых пользовательских заголовков приложения, которые могут потребоваться клиенту. Директива рассчитана на приём одного аргумента, который представляет собой имя заголовка, подлежащего передаче. Директива может применяться в контекстах `http`, `server` или `location`, что обеспечивает гибкость применения в зависимости от области конфигурации. Если требуется несколько заголовков, директиву можно указать несколько раз, по одному разу для каждого включаемого заголовка. Кроме того, важно убедиться, что указанные заголовки действительно присутствуют в ответе SCGI; в противном случае они не будут отправлены клиенту, что приведёт к неполноте передаваемых данных. На практике эта директива работает путём перехвата заголовков, входящих в ответ от SCGI-сервера. Указывая, какие заголовки передавать, администраторы могут тонко настроить поведение на стороне клиента и управление данными, обеспечивая информирование клиентов обо всей необходимой информации и адаптацию к конкретным требованиям обслуживаемого приложения.

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

server {
    listen 80;

    location /myapp {
        scgi_pass 127.0.0.1:9000;
        scgi_pass_header X-My-Custom-Header;
        scgi_pass_header Content-Type;
    }
}

Помните, что нужно использовать точный регистр имени заголовка, поскольку в некоторых контекстах HTTP-заголовки чувствительны к регистру.

Если заголовок отсутствует в ответе SCGI, он не появится в ответе клиенту, что может ввести в заблуждение.

Использование слишком большого количества директив `scgi_pass_header` без необходимости может привести к ухудшению производительности, так как заголовки обрабатываются и передаются по одному.