grpc_ssl_name

Директива grpc_ssl_name задаёт имя хоста для gRPC-сервера при использовании SSL. — NGINX HTTP Core

grpc_ssl_name
httpserverlocation
Синтаксисgrpc_ssl_name hostname;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива grpc_ssl_name используется в конфигурации NGINX для задания имени хоста, которое будет отправлено в расширении Server Name Indication (SNI) во время SSL-рукопожатия для gRPC‑соединений. Это особенно важно, когда NGINX действует как обратный прокси для нескольких gRPC‑сервисов, размещённых на одном IP‑адресе, но требующих различных SSL‑сертификатов в зависимости от имени хоста, запрашиваемого клиентом. Когда эта директива задана, NGINX будет заменять имя хоста в SSL‑контексте на указанное значение при обработке gRPC‑запросов. Это повышает безопасность и надёжность SSL‑соединений, гарантируя, что для каждого конкретного запроса к gRPC‑сервису будет представлен корректный сертификат. Директива применяется в контекстах http, server и location, что позволяет гибко настраивать конфигурацию в зависимости от структуры ваших сервисов. Аргументом этой директивы должна быть одна строка, задающая SSL‑имя хоста. Если директива опущена, NGINX по умолчанию использует исходный хост, запрошенный клиентом. Правильная настройка grpc_ssl_name необходима для конфигураций с виртуальным хостингом или при работе с несколькими gRPC‑бэкендами.

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

server {
    listen 443 ssl;
    server_name grpc.example.com;

    grpc_ssl_name backend.grpc.example.com;

    location / {
        grpc_pass grpc://backend;
    }
}

Убедитесь, что hostname указан правильно и соответствует SSL certificate, покрывающему этот hostname.

Использование grpc_ssl_name вместе с несколькими server blocks может привести к конфликтам, если они не настроены должным образом.