Nginx

Nginx - 設置子域無法正常工作

  • January 23, 2017

一開始,我創建了一個 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.comorhttp://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>

您缺少指令;中的index,這會導致 nginx 解釋

index.html

server_name domain.com www.domain.com;

作為index指令的內容。因此沒有用 a 定義的虛擬主機server_name,nginx 將使用子域虛擬主機作為包羅萬象的虛擬主機。

引用自:https://serverfault.com/questions/827887