一開始,我創建了一個conf文件,當我想要訪問時它可以正常工作http://www.domain.com
:
server {
listen 80;
listen [::]:80;
root /var/www/domain;
index index.html
server_name domain.com www.domain.com;
}
然後我決定為子網域建立另一個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
我的 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 將使用子網域虛擬主機作為包羅萬象的虛擬主機。