带有子域名的 Nginx VirtualHosts 始终指向主域名

带有子域名的 Nginx VirtualHosts 始终指向主域名

我有两个正在运行的站点,如下所示。服务器:nginx/1.14.2 / Debian 10

  • 目录mydomain.com中的主站点/var/www/mydomain
  • blog.mydomain.com/var/www/blog` 目录中的子站点

查看 DNS 条目。

Type    Name          Content       TTL 
A       blog          34.72.11.9    auto
A       mydomain.com  34.72.11.9    auto
CNAME   www           mydomain.com  auto

单独配置nginx虚拟主机

server_name  mydomain.com www.mydomain.com

server_name  sub1.mydomain.com

但是,blog.mydomain.com 也加载了 mydomain.com 的内容。

任何想法 ?

答案1

我无法发表评论,我需要另外四个声誉点,但我也许可以提供帮助。

根据您提供的信息,很难弄清楚,但作为指南,我执行以下操作。我使用 Nginx 作为反向代理,它将 Apache 缓存在另一台服务器上,但配置应该相同。

在乱搞你的 nginx 配置之前,一定要先备份。我还假设你使用的是 Linux 机器,而不是 Windows 机器。

在我的 nginx.conf 中使用 http 块;

include /etc/nginx/sites-enabled/*.conf

每个域都有自己的配置,以便于调试,例如 /etx/nginx/sites-enabled/mydomain.com.conf

server {

    listen 192.168.0.100:80;

    server_name mydomain.com www.mydomain.com;
    root /var/www/mydomain.com;
    index index.html index.php;

}

现在对于 /etc/nginx/sites-enabled/blog.mydomain.com.conf;

server {

        listen 192.168.0.100:80;

        server_name blog.mydomain.com;
        root /var/www/blog.mydomain.com;
        index index.html index.php;

    }

现在告诉 nginx 测试配置然后重新加载。

sudo nginx -t
sudo nginx -s reload

如果上述方法不起作用,请确保没有其他“服务器”块覆盖,并且没有在任何地方设置“default_server”。确保文件所有权和访问权限正确,并且 nginx 用户可以读取所需的文件。

相关内容