在开始时,我创build了一个conf文件,当我想要访问http://www.domain.com
时,它可以正常工作:
server { listen 80; listen [::]:80; root /var/www/domain; index index.html server_name domain.com www.domain.com; }
然后我决定创build一个子域的另一个conf文件:
server { listen 80; listen [::]:80; root /var/www/subdomain.domain; index index.html server_name subdomain.domain.com; }
现在的问题是,每当我想要访问http://www.domain.com
或http://subdomain.domain.com
,在这两种情况下,结果是我应该为子域获得的页面。
新的conf文件已正确添加到site-enabled
文件夹中:
ln -s /etc/nginx/site-available/subdomain.domain.conf /etc/nginx/site-enabled/subdomain.domain.conf
这就是我的DNSlogging的样子:
domain.com. IN A <server_ip> www.domain.com. IN A <server_ip> subdomain.domain.com. IN A <server_ip>
你错过了;
在index
指令中,这导致了nginx的解释
index.html server_name domain.com www.domain.com;
作为index
指令的内容。 因此,没有使用server_name
定义的虚拟主机,而nginx将使用子域虚拟主机作为catch-all虚拟主机。