grpc_ssl_name
grpc_ssl_name 指令在使用 SSL 时指定 gRPC 服务器的主机名。 — NGINX HTTP Core
grpc_ssl_name
httpserverlocation
语法grpc_ssl_name hostname;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
grpc_ssl_name 指令在 NGINX 配置中用于设置在 gRPC 连接的 SSL 握手期间将在 Server Name Indication (SNI) 扩展中发送的主机名。当 NGINX 作为多个 gRPC 服务的反向代理,而这些服务托管在同一个 IP 地址上但基于客户端请求的主机名需要不同的 SSL 证书时,这一点尤为重要。 当设置该指令时,NGINX 在处理 gRPC 请求时会用指定的值替换 SSL 上下文中的主机名。通过确保针对每个特定的 gRPC 服务请求呈现正确的证书,它提高了 SSL 连接的安全性和可靠性。该指令可用于 http、server 和 location 上下文,根据服务结构允许灵活配置。 该指令的参数必须是一个单独的字符串,用于定义 SSL 主机名。如果省略该指令,NGINX 默认使用客户端请求的原始主机。对于涉及虚拟主机或处理多个 gRPC 后端的部署,正确配置 grpc_ssl_name 至关重要。
配置示例
server {
listen 443 ssl;
server_name grpc.example.com;
grpc_ssl_name backend.grpc.example.com;
location / {
grpc_pass grpc://backend;
}
}⚠
确保 hostname 正确,并且与覆盖该 hostname 的 SSL 证书相对应。
⚠
在使用 grpc_ssl_name 与多个 server blocks 一起时,如果配置不当,可能会导致冲突。