grpc_set_header

为请求设置 gRPC 头。 — NGINX HTTP Core

grpc_set_header
httpserverlocation
语法grpc_set_header name value;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数2

说明

`grpc_set_header` 指令允许您为传递到后端服务器的 gRPC 请求添加或修改 HTTP/2 头。这在微服务架构中尤其有用,当需要随请求发送特定元数据时。该指令接受两个参数:第一个是要设置的头名称,第二个是要赋给该头的值。这允许根据请求的上下文或预定义变量动态生成头的值。 当在特定上下文 (http, server, or location) 中使用 `grpc_set_header` 指令时,它会在该配置级别应用这些头。例如,如果在 server block 中声明,则由该 server 处理的所有 gRPC 请求都会携带指定的头。如果在 location block 内声明,则只有匹配该 location 的请求会被设置这些头。也可以在指令中使用变量来动态设置头值,从而提高将元数据传递给后端服务的灵活性。

配置示例

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

确保请求头设置正确且没有拼写错误,因为 gRPC 对请求头名称非常敏感。

避免使用可能被 gRPC 协议或后端服务器过滤的不受支持的请求头名称。