Nginx

是否可以將 Nginx 配置為允許添加新域而無需為每個域添加 VirtualHost?

  • April 21, 2012

我有一個 SaaS 應用程序,使用者可以在其中輸入他們的域名。該應用程序使用傳入請求的主機名根據他們為其帳戶輸入的域來確定帳戶,載入設置、主題等。

我不想為使用者添加的每個新域添加一個新的 Nginx 主機,這導致我找到一個解決方案,其中我讓所有人將他們的wwwCNAME 指向我伺服器上的靜態子域(例如all-websites.[my domain].com),重定向每個根請求到其各自的www版本(例如example.com重定向到www.example.com)。

上述解決方案是否有效,如果可以,是否有任何缺點,如果沒有,您是否知道一個更好的解決方案,它仍然不需要我每次使用者註冊時都更新 Nginx 配置(我也不想要有一個腳本為我編輯配置)。

server使用該指令將要使用的部分標記為預設部分listen,以便 nginx 在沒有匹配項時使用該部分server_names。聽起來您總是在代理應用程序,並且該應用程序知道如何處理不同的主機,但如果有必要,您可以$host在 nginx 配置中使用該變數。

listen 80 default_server;

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