grpc_ssl_server_name
启用在 gRPC SSL 握手中使用服务器名称以匹配 Server Name Indication (SNI)。 — NGINX HTTP Core
grpc_ssl_server_name
httpserverlocation
语法grpc_ssl_server_name on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
在 NGINX 配置中,`grpc_ssl_server_name` 指令用于在 gRPC 连接的 SSL 握手中包含服务器名称。这使 NGINX 能够满足客户端的 Server Name Indication (SNI) 要求,帮助根据指定的主机名将连接正确路由到相应的后端服务器。启用此指令后,服务器可以在相同的 IP 地址上托管多个 SSL 站点,并通过各自的域名进行区分。 该指令可以在多种上下文中指定,包括 `http`、`server` 和 `location`,在整个配置文件中提供灵活的应用方式。将此指令设置为 'on' 后,NGINX 服务器会使用 gRPC 请求中包含的服务器名称用于其 SSL 配置,从而能够正确选择与域名匹配的 SSL 证书集合。在多个 gRPC 服务托管于同一服务器的环境中,这一点尤其有用。 需要注意的是,启用 `grpc_ssl_server_name` 可能需要对 SSL 证书进行仔细管理,以确保它们为 SNI 正确配置。如果使用多个域,请确保它们使用有效的 SSL 证书妥善保护,以实现可靠的通信。该功能强调了与期望 SNI 支持以正常工作的 gRPC 客户端的互操作性。
配置示例
server {
listen 443 ssl;
grpc_ssl_server_name on;
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/key.pem;
}
⚠
确保为每个服务器名称安装并配置正确的 SSL 证书,以避免握手失败。
⚠
如果在 NGINX 前使用负载均衡器,请验证其是否支持 SNI 并正确转发服务器名称。
⚠
此指令在纯 HTTP 环境中不受支持,仅适用于启用 https 的配置。