$ssl_server_name
Переменная $ssl_server_name содержит имя сервера, указанное в директиве 'server_name', которое совпадает с запросом во время SSL-рукопожатия. — NGINX Core (HTTP)
Описание
Переменная $ssl_server_name устанавливается в контексте NGINX server block с включённым SSL и в основном используется для определения того, какой виртуальный сервер обслуживает запрос на основе его имени сервера во время фазы SSL handshake. Когда клиент инициирует SSL-соединение с NGINX, сервер сравнивает запрошенное имя хоста с настроенными директивами 'server_name' в каждом server block. Используется первый совпавший сервер, и соответствующее имя сервера сохраняется в переменной $ssl_server_name. Если совпадающее имя сервера не найдено, $ssl_server_name будет пустой, и вместо него может использоваться имя сервера по умолчанию (если оно настроено). Эта переменная ведёт себя аналогично $server_name; однако она заполняется специально во время процесса SSL handshake, что позволяет использовать её для различных целей, таких как логирование, контроль доступа и формирование ответов на основе запрошенного имени хоста. Типичными значениями для $ssl_server_name будут DNS-имена, настроенные в server blocks, например 'example.com' или 'www.example.com'.
Пример конфига
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
add_header X-SSL-Server-Name "$ssl_server_name";
}
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifУбедитесь, что SSL включён для серверного блока, используя 'listen 443 ssl;'.
Если нет совпадающего server_name, переменная будет пустой; будьте осторожны при настройке сервера, чтобы избежать путаницы.
$ssl_server_name нельзя использовать в конфигурациях, не связанных с SSL. Убедитесь, что контекст корректен.