grpc_set_header

Устанавливает заголовок gRPC для запроса.

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

Описание

grpc_set_header директива позволяет добавлять или изменять заголовки HTTP/2 для gRPC-запросов, передаваемых на backend server. Это особенно полезно в архитектуре microservices, где вместе с запросом требуется отправлять определённые метаданные. Директива принимает два параметра: первый — имя заголовка, который нужно установить, второй — значение, присваиваемое этому заголовку. Это позволяет динамически формировать значения заголовков на основе контекста запроса или предопределённых variables.

Когда директива grpc_set_header используется в конкретном контексте (http, server или location), заголовки будут применяться на этом уровне конфигурации. Например, если директива объявлена в server block, все gRPC-запросы, обрабатываемые этим сервером, будут содержать указанные заголовки. Если она объявлена внутри location block, заголовки будут установлены только для запросов, соответствующих этому location. Также можно использовать variables внутри директивы для динамической установки значений заголовков, что повышает гибкость передачи метаданных в backend services.

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

location /rpc {
    grpc_pass grpc://backend;
    grpc_set_header api-key $api_key;
    grpc_set_header user-id $http_user_id;
}

Убедитесь, что заголовки установлены корректно и без опечаток, поскольку gRPC чувствителен к именам заголовков.

Избегайте использования неподдерживаемых имён заголовков, которые могут быть отфильтрованы протоколом gRPC или бэкенд-сервером.

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