nginx虚拟主机加载错误的站点



我有三个域的nginx。

字母内的网站是 d.com g.com m.com 。。

这三个站点都是单个站点WordPress安装。

g.com 是https,带有letsencrypt证书并按预期加载。

m.com 不是HTTPS,并且负载

d.com loads m.com 而不是自己的文件夹。

我已经搜索和阅读了两个星期,我无法理解我做错了什么。

新信息

我发现它的DNS仍在我的旧主机(MT),它正确地指向了这里,但我决定将其移至新主机(Linode)。

现在,如果我使用www.d.com,我会从正确的文件夹中获得正确的站点加载。但是,如果我离开www并使用d.com,我将重定向到www.m.com作为完整的重定向。

/etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
        worker_connections 768;
        # multi_accept on;
}
http {
        ##
        # Basic Settings
        ##
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        client_max_body_size 150M;
        # server_tokens off;
        server_names_hash_bucket_size 64;
        # server_name_in_redirect off;
        #fastcgi
        fastcgi_buffers 8 16k;
        fastcgi_buffer_size 32k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        ##
        # SSL Settings
        # /snippits/ssl-params.conf
        ##
        #ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        #ssl_prefer_server_ciphers on;
        ##
        # Logging Settings
        # Logs set in server blocks
        ##
        error_log /var/log/nginx/http_error.log error;
        ##
        # Gzip Settings
        # /conf.d/gzip.conf
        ##
        ##
        # Virtual Host Configs
        ##
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}
#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}

/etc/nginx/sites-available/d.com

server {
        listen 80;
        listen [::]:80;
        server_name d.com www.d.com;
        include snippets/expires-headers.conf;
        root /var/www/html/d.com/public_html;
        index index.php;
        access_log /var/log/nginx/d.com/www-access.log;
        error_log /var/log/nginx/d.com/www-error.log error;
        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }
        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~ .php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_intercept_errors on;
                include fastcgi_params;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME /var/www/html/d.com/public_html$fastcgi_script_name;
        }
        location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }
}

/etc/nginx/sites-available/g.com

server {
        listen 80;
        listen [::]:80;
        server_name g.com www.g.com;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate /var/lib/acme/live/g.com/fullchain;
    ssl_certificate_key /var/lib/acme/live/g.com/privkey;
    include snippets/ssl-params.conf;
    include snippets/expires-headers.conf;
    server_name g.com www.g.com;
        root /var/www/html/g.com/public_html;
        index index.html index.php;
    access_log /var/log/nginx/g.com/www-access.log;
    error_log /var/log/nginx/g.com/www-error.log error;
    location /.well-known/acme-challenge/ {
        alias /var/run/acme/acme-challenge/;
    }
        location / {
                try_files $uri $uri/ =404;
        }
        location ~ .php$ {
                include snippets/fastcgi-php.conf;
                include fastcgi_params;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME /var/www/html/g.com/public_html$fastcgi_script_name;
        }
}

/etc/nginx/sites-available/m.com

server {
    listen 80;
    listen [::]:80;
    server_name m.com www.m.com;
    include snippets/expires-headers.conf;
    root /var/www/html/m.com/public_html;
    index index.php;
    access_log /var/log/nginx/m.com/www-access.log;
    error_log /var/log/nginx/m.com/www-error.log error;
    location = /favicon.ico {
            log_not_found off;
            access_log off;
    }
    location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
    }
    location / {
            try_files $uri $uri/ /index.php?$args;
    }
    location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_intercept_errors on;
            include fastcgi_params;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            fastcgi_param SCRIPT_FILENAME /var/www/html/m.com/public_html$fastcgi_script_name;
    }
    location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
            log_not_found off;
    }
}

您的配置似乎没有错,但是我的怀疑是您通过复制/粘贴M.com的配置创建了D.com的配置任何更改,然后在对D.com配置进行修改之前重新启动或重新加载其配置,这基本上意味着Nginx没有加载当前的配置。

您可以重新加载配置。在Ubuntu/Debian上是这样的:

sudo service nginx reload

您也应该进行重新检查,并且绝对确定/var/www/html/d.com/public_html/var/www/html/m.com/public_html确实提供了不同的内容。

将DNS区域文件从媒体神庙移动到Linode之后,http://www.d.com开始从正确的文件夹中加载WordPress安装,尽管http://d.com没有。

我尝试了另一个浏览器,发现在另一个浏览器中都在工作。

我不明白为什么移动DNS区域文件在这里工作。

最新更新