uwsgi_ssl_server_name

`uwsgi_ssl_server_name` 指令指定是否在通过 SSL 与 uWSGI 服务器通信时发送服务器名。 — NGINX HTTP Core

uwsgi_ssl_server_name
httpserverlocation
语法uwsgi_ssl_server_name on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag

说明

`uwsgi_ssl_server_name` 指令适用于包括 `http`、`server` 和 `location` 在内的不同上下文。启用此指令时,NGINX 会在通过 SSL 通信时将 `Host` 头中指定的服务器名传递给 uWSGI 应用。对于由于虚拟主机配置导致 uWSGI 服务器需要知道原始服务器名的情况,这一点尤其有用。 当设置为 'on' 时,NGINX 会在 uWSGI 请求中包含 `SERVER_NAME` 变量,从而根据虚拟主机配置实现更精确的路由和行为。该参数仅需一个标志且不接受其他参数;只需设置该指令即可启用其功能。重要的是确保目标 uWSGI 应用能够正确解释所传递的服务器名,以免导致请求路由错误或在处理 HTTP 响应时出现错误。 该指令在 SSL 终止的场景下增强了 NGINX 与 uWSGI 之间的兼容性和集成,对于希望在使用安全连接时保持其 Web 应用上下文的开发者来说是一个有用的选项。如果在同一后端环境中存在多个域名应用且基于服务器名处理请求时出现问题,可能需要调整此设置。

配置示例

server {
    listen 443 ssl;
    server_name example.com;
    # other ssl configurations

    location / {
        uwsgi_pass unix:/path/to/your.sock;
        uwsgi_ssl_server_name on;
        uwsgi_param SCRIPT_NAME '';
        uwsgi_param PATH_INFO $uri;
    }
}

确保你的 uWSGI 应用已配置为正确识别 SERVER_NAME 变量。

此指令仅在使用 SSL 时适用;请确保你的 server block 已针对 SSL 连接进行配置。

在将此指令用于多个 server block 时要格外小心,否则处理不当可能导致意外行为。