Nginx 中多个域名的重定向问题

Nginx 中多个域名的重定向问题

当我尝试在浏览器上访问域 B 时遇到重定向问题,由于某种原因,我被重定向到域 A,这里可能发生了什么?

(这是我的站点可用文件夹)

顺便说一句,我从中删除了 DomainB sites-enables,但仍然得到相同的重定向...这可能是 DNS 问题而不是 nginx 问题吗?

##
## /etc/nginx/sites-available/DomainC
##

server {
    listen 80;
    server_name domainC.com www.domainC.com;
    return 301 https://domainA.com/blog$request_uri;
}

##
## /etc/nginx/sites-available/DomainA
##

server {
    listen 80;
    server_name domainA.com www.domainA.com;
    return 301 https://domainA.com$request_uri;
}

server {
    listen 443 ssl;
    server_name www.domainA.com;
    include domainA.ssl.conf;
    return 301 https://domainA.com$request_uri;
}

server {
    server_name domainA.com;
    root /var/www/domainA.com;
    listen 443 ssl;
    index index.html;
    autoindex off;
    include common.conf;
    include domainA.ssl.conf;
}

##
## /etc/nginx/sites-available/DomainB
##

server {
    listen 80;
    server_name domainB.cl;
    return 301 http://www.domainB.cl$request_uri;
}

 server {
    listen 80;
    server_name www.domainB.cl;
    root /var/www/domainB.cl;
    index index.html;
}

编辑:我认为这可能与以下事实有关:如果出于某种原因我访问http://vps_ip/(例如 192.123.123.123),我也会被重定向到https://DomainA.com/blog/

答案1

您正在重定向请求http://domainB.clhttp://www.domainB.cl。由于您只配置了

server_name domainB.cl;

并不是

server_name domainB.cl www.domainB.cl;

,nginx 不知道应该使用哪个虚拟主机。因此,它会将请求重定向到配置中的默认虚拟主机,即 domainA.com 的虚拟主机。如果您从 sites-enabled 中删除 vhost,情况也是如此:nginx 使用默认 vhost。

为了解决这个问题,您必须为 www.domainB.cl 添加一个虚拟主机。

相关内容