grpc_set_header
Устанавливает заголовок gRPC для запроса.
Описание
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 или бэкенд-сервером.