Nginx
使用 nginx 管理多個子域
我喜歡在我的 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。只有當子域與string1和string2不同時,我才會執行重寫。所以:
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