Nginx

使所有子域使用與 nginx 相同的文件根目錄

  • March 29, 2013

我在我的域的 *.conf 文件中有以下內容:

server { 
 listen 80; 
 server_name domain.tld; 
 access_log /var/log/nginx/domain.tld.accesslog; 
 root /var/www/domain.tld; 
 index index.htm index.html;
}

我的問題是……如果我想讓所有子域使用與 domain.tld 相同的文件根目錄(和一般相同的設置)怎麼辦?

我試過這個:

server { 
 listen 80; 
 server_name domain.tld; 
 server_name *.domain.tld; 
 access_log /var/log/nginx/domain.tld.accesslog; 
 root /var/www/domain.tld; 
 index index.htm index.html;
}

但這沒有用,即使在重新載入後也是如此。有任何想法嗎?

有一種特殊的語法“糖”可以優雅地處理這個問題:

server { 
   listen 80; 
   server_name .domain.tld; # ← this one's sweety
   access_log /var/log/nginx/domain.tld.accesslog; 
   root /var/www/domain.tld; 
   index index.htm index.html;
}

但是,如果您是前彙程式序員,在業餘時間計算 CPU 週期,您可能希望用較短符號的簡單性換取伺服器名稱的顯式長列表(10x2 @ cnst)。

  server_name domain.tld; 
  server_name *.domain.tld;

我認為是上面的問題。試試這個:

 server_name domain.tld *.domain.tld;

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