一开始,我创建了一个 conf 文件,当我想要访问时它可以正常工作http://www.domain.com
:
server {
listen 80;
listen [::]:80;
root /var/www/domain;
index index.html
server_name domain.com www.domain.com;
}
然后我决定为子域创建另一个配置文件:
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
我的 DNS 记录如下:
domain.com. IN A <server_ip>
www.domain.com. IN A <server_ip>
subdomain.domain.com. IN A <server_ip>
答案1
;
您在指令中缺少index
,这导致 nginx 解释
index.html
server_name domain.com www.domain.com;
作为指令的内容index
。因此,没有使用 定义的虚拟主机server_name
,并且 nginx 将使用子域虚拟主机作为 catch-all 虚拟主机。