$ssl_server_name

变量 $ssl_server_name 包含在 SSL 握手期间与请求匹配的、由 'server_name' 指令指定的服务器名称。 — NGINX Core (HTTP)

$ssl_server_name NGINX Core (HTTP)

说明

变量 $ssl_server_name 在启用 SSL 的 NGINX server 块上下文中设置,主要用于在 SSL 握手阶段根据服务器名称识别哪个虚拟服务器正在处理请求。当客户端向 NGINX 服务器发起 SSL 连接时,服务器会将请求的主机名与每个 server 块中配置的 'server_name' 指令进行比较。使用第一个匹配的服务器,并将该服务器对应的名称存储在 $ssl_server_name 变量中。\n\n如果没有找到匹配的服务器名,$ssl_server_name 将为空,并且可能会改用默认服务器的名称(如果已配置)。该变量的行为类似于 $server_name;然而,它是在 SSL 握手过程中专门填充的,从而可用于日志记录、访问控制以及根据请求的主机名生成响应等各种用途。$ssl_server_name 的典型值为在 server 块中配置的 DNS 名称,例如 '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

确保在 server 块中启用 SSL,使用 'listen 443 ssl;'.

如果没有匹配的 server_name,变量将为空;在进行服务器配置时请小心,以免产生混淆。

$ssl_server_name 不能在与 SSL 无关的配置中使用。请确保上下文适当。