Nginx - 重定向忽略 server_name

Nginx - 重定向忽略 server_name
#default:
server { 
    listen 80 default_server;

    server_name _;

    return 404;
}

server { 
    listen 443 default_server;

    server_name _;

    ssl_certificate         /etc/nginx/ssl/dummy.crt;
    ssl_certificate_key     /etc/nginx/ssl/dummy.key;

    return 404;
}


#old-domain:
server { 
    listen 80;

    server_name old-domain.com;
    server_name www.old-domain.com;

    return 301 https://www.old-domain.com$request_uri;
}

server {
    listen 443;

    server_name old-domain.com;
    server_name www.old-domain.com;

    ssl_certificate         /etc/nginx/ssl/old-domain.crt;
    ssl_certificate_key     /etc/nginx/ssl/old-domain.key;

    #catch all
    return 301 https://new-domain.com;
}


#new-domain:
server { 
    listen 80;

    server_name new-domain.com;
    server_name www.new-domain.com;

    return 301 https://www.new-domain.com$request_uri;
}

server {
    listen 443;

    server_name new-domain.com;
    server_name www.new-domain.com;

    ssl_certificate         /etc/nginx/ssl/new-domain.crt;
    ssl_certificate_key     /etc/nginx/ssl/new-domain.key;

    ....
}

根据要求,以下是 curl -I 对各种请求的输出:

卷曲-Ihttp://old.domain.com

HTTP/1.1 301 永久移动 服务器:nginx/1.16.1 日期:2019 年 11 月 11 日星期一 07:48:57 GMT 内容类型:text/html 内容长度:169 连接:保持活动 位置:https://www.old.domain.com/

卷曲-Ihttps://old.domain.com

curl:(60)SSL 证书问题:自签名证书更多详细信息请参见:https://curl.haxx.se/docs/sslcerts.html curl 无法验证服务器的合法性,因此无法与其建立安全连接。要了解有关此情况的更多信息以及如何修复它,请访问上面提到的网页。

答案1

我认为问题出在证书上。您需要将 SSL 正确证书添加到您在旧域上重定向的服务器块。确保旧域上的证书正确,否则它将不起作用

相关内容