Nginx

如何在 Nginx 伺服器塊中創建多個停放域

  • January 6, 2015

我為我的網站購買了多個域名。現在,我像這樣重定向這些停放的域(指向我的 nginx ipaddress 的域):

server {
   server_name  example.com www.example;
   rewrite ^(.*) http://example.co.uk$1 permanent;
}

現在,我有超過 5 或 6 個停放的域都指向這個 IP 地址(1 個站點)。因此,如果我為同一個站點有多個停放域,我唯一的選擇是寫一個非常長的 server_name 嗎?

server {
   server_name  example.com www.example example.org www.example.org example.net www.example.net examples.com www.examples.com examples.org www.examples.org examples.net www.examples.net;
   rewrite ^(.*) http://example.co.uk$1 permanent;
}

以上對我來說看起來不正確。但我的問題是,這是怎麼做到的?我的意思是,如果我有很多停放的域,我只是在我的 Nginx 配置的伺服器塊中不斷添加我的冗長行,這應該沒有問題嗎?

有人可以為我澄清一下嗎…

如果您確保nginx預設伺服器包含您的rewrite規則,則根本不需要指定名稱,因為如果請求未知名稱,伺服器將與預設伺服器作出反應。你甚至可以像這樣定義一個明確的 catch all 伺服器:

   server {
       listen       80  default_server;
       server_name  _;
       rewrite ^(.*) http://example.co.uk$1 permanent;
   }   

這是有效的,因為_ 它永遠不是一個有效的名稱。

還有其他選擇,但最好的方法(恕我直言)是頂級停止“停放”域。如果您不需要它們,請取消註冊。

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