首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx在升级到HTTPS时解析错误主机

Nginx在升级到HTTPS时解析错误主机
EN

Stack Overflow用户
提问于 2018-03-25 07:29:25
回答 1查看 67关注 0票数 1

我有3个NGINX主机,我只想在HTTPS上服务。其中两个正确工作,但其中一个解析错误的主机。这是所有的信息

Nginx虚拟主机

代码语言:javascript
复制
# cat alpha.domain-a.tld
server {
    listen 80;
    server_name alpha.domain-a.tld;

    return 301 https://alpha.domain-a.tld$request_uri;
}

server {
    listen 443;

    ssl on;
    ssl_certificate     /etc/nginx/certs/alpha.domain-a.tld.pem;
    ssl_certificate_key /etc/nginx/certs/alpha.domain-a.tld.key;

    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_verify_client on;

    root /var/www/alpha.domain-a.tld/;
    index index.html;

    server_name alpha.domain-a.tld;

    location / {
        try_files $uri $uri/ $uri.html =404;
    }
}

# cat mike.domain-a.tld
server {
    listen 80;
    server_name mike.domain-a.tld;

    return 301 https://mike.domain-a.tld$request_uri;
}

server {
    listen 443;

    ssl on;
    ssl_certificate     /etc/nginx/certs/domain-a.tld.pem;
    ssl_certificate_key /etc/nginx/certs/domain-a.tld.key;

    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_verify_client on;

    root /var/www/mike.domain-a.tld/;
    index index.html;

    server_name mike.domain-a.tld;

    location / {
        try_files $uri $uri/ $uri.html =404;
    }
}

# cat juliet.domain-b.tld
server {
    listen 80;
    server_name juliet.dommain-b.tld;

    return 301 https://juliet.domain-b.tld$request_uri;
}

server {
    listen 443;

    ssl on;
    ssl_certificate     /etc/nginx/certs/domain-b.tld.pem;
    ssl_certificate_key /etc/nginx/certs/domain-b.tld.key;

    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_verify_client on;

    root /var/www/juliet.domain-b.tld;  
    index index.html;

    server_name juliet.domain-b.tld;

    location / {
        try_files $uri $uri/ $uri.html =404;
    }
}

但是,当我试图访问http://juliet时,阿尔法和迈克解析正确,它将我重定向到Alpha而不是https://juliet,如下所示:

代码语言:javascript
复制
# curl -I --resolve alpha.domain-a.tld:80:127.0.0.1 http://alpha.domain-a.tld/
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: #OMMITED
Content-Type: text/html
Content-Length: #OMMITED
Connection: keep-alive
Location: https://alpha.domain-a.tld/

# curl -I --resolve mike.domain-a.tld:80:127.0.0.1 http://mike.domain-a.tld/
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: #OMMITED
Content-Type: text/html
Content-Length: #OMMITED
Connection: keep-alive
Location: https://mike.domain-a.tld/

# curl -I --resolve juliet.domain-b.tld:80:127.0.0.1 http://juliet.domain-b.tld/
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: #OMMITED
Content-Type: text/html
Content-Length: #OMMITED
Connection: keep-alive
Location: https://alpha.domain-a.tld/

有人能帮我找出朱丽叶为什么要解析第一个字母数字主机(alpha)而不是朱丽叶吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-25 07:50:11

看看朱丽叶的server_name

代码语言:javascript
复制
# cat juliet.domain-b.tld
server {
    listen 80;
    server_name juliet.dommain-b.tld;

    return 301 https://juliet.dommain-b.tld$request_uri;
}

juliet.dommain-b.tld可能不存在吗?我认为您的curl命令是正确的(带有正确的url),但是在nginx配置中,您写错了名称。您的nginx服务器不知道域,但是dns请求正确地解析到您的服务器,因此您的服务器返回nginx配置的第一个条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49473496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档