Nginx 重定向无服务器名称

Nginx 重定向无服务器名称

我正在从一个嵌入式 Linux 机器上提供网页,该机器可能连接到互联网,也可能没有连接到互联网。我的想法是,用户输入机器的 IP,然后页面就会出现。我想将所有非 SSL URL 重定向到 SSL URL(https)。我发现的每个示例都在returnnginx 配置行中使用 $server_name 或 $host。对我来说,问题是机器的 IP 可能会改变,每次都编辑 nginx 配置文件不是一个选择。我试过将 server_name 设置为,但_无济于事。如果我设置server_name为机器的当前 IP,那么会起作用。然后,如果我输入,192.168.1.196它会重定向到https://192.168.1.196/dashboard,这正是我想要的。不幸的是,这在生产中不起作用,因为如上所述,IP 可能会改变。我当前的 nginx 配置如下。

server {
    listen       80;
    #server_name  _;
    #server_name 192.168.1.196;
    ssl_certificate server.crt;
    ssl_certificate_key private.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    autoindex on;
    return 302 https://$server_name/dashboard;

    location /dashboard {
        alias build;
        index index.html;
    }
}

答案1

那么这就是$host您想要使用的,因为它包含浏览器提供的 Host: 标头。

相关内容