Nginx

使用 nginx 管理多個子域

  • January 9, 2015

我喜歡在我的 Nginx 伺服器中處理不同的子域,這是我的配置文件(部分)

server {
   listen                              80 default_server;
   listen                              443 default_server ssl;

   include                             ssl/mysite.conf;

   server_name                         default_server;
   rewrite                             ^(.*)$ https://mysite.com$1 permanent;

如您所見,對sub-domain.mysite.com/query的所有請求總是在https重定向mysite.com/query只有當子域與string1string2不同時,我才會執行重寫。所以:

string1.mysite.com/query     --->   https://string1.mysite.com/query
foo.mysite.com/query         --->   https://mysite.com/query

您可以為不同的主機名指定不同的伺服器塊,如建議的 AD7six。

在您的情況下,我會編寫 2 個伺服器塊,一個用於 string1.mysite.com 和 string2.mysite.com,另一個沒有 server_name 過濾器以匹配所有其他請求。

像這樣的東西:

server {
   listen                              80 default_server;
   listen                              443 default_server ssl;

   include                             ssl/mysite.conf;

   rewrite                             ^(.*)$ https://mysite.com$1 permanent;
   ...
}

server {
   listen                              80;
   listen                              443 ssl;

   include                             ssl/mysite.conf;

   server_name                         string1.mysite.com string2.mysite.com;
   ...
}

server_name 指令文件非常好,可以幫助您解決此類問題。 http://nginx.org/en/docs/http/server_names.html

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