是否可以配置 Nginx 以允许添加新域,而无需为每个域添加 VirtualHost?

是否可以配置 Nginx 以允许添加新域,而无需为每个域添加 VirtualHost?

我有一个 SaaS 应用程序,用户可以在其中输入他们的域名。该应用程序使用传入请求的主机名,根据他们为其帐户输入的域来确定帐户,加载设置、主题等。

我不想为用户添加的每个新域都添加一个新的 Nginx 主机,这引出了我的解决方案,其中我让所有人都将他们的wwwCNAME 指向我服务器上的静态子域(例如all-websites.[my domain].com),将每个根请求重定向到其各自的www版本(例如example.com重定向到www.example.com)。

上述解决方案是否有效?如果有效,有什么缺点吗?如果不行,您是否知道更好的解决方案,同时仍然不需要我在每次用户注册时更新 Nginx 配置(我也不想让脚本为我编辑配置)。

答案1

使用serverlisten指令,这样 nginx 在没有匹配项时就会使用该指令server_names。听起来你总是代理一个应用程序,而该应用程序知道如何处理不同的主机,但如果有必要,你可以使用$hostnginx 配置中的变量。

listen 80 default_server;

相关内容