多租户 nginx 配置

多租户 nginx 配置

我正在努力为内容创建者和教育工作者建立一个 SaaS 平台。我已经到了需要为最终用户设置自定义域的阶段。看到它在行业中的表现,我想使用 CNAME 记录将流量从用户域引导到我的服务器。

CNAME www.customuserdomain.com -> customuseralias.mysaas.io

然后我像这样配置了 nginx:

server {
    listen 80;
    server_name ~^(?<account>.+)\.mysaas\.io$;

    location / {
            proxy_set_header Account $account; 
            proxy_pass http://localhost:5003;
            proxy_http_version 1.1;

    }
}

当通过 访问服务器时customuseralias.mysaas.io。然后当我在我的应用程序中我可以访问“帐户”标题并且可以确定显示什么内容没有问题。

但是,当通过访问服务器时,www.customuserdomain.com我收到错误的网关错误。根据我的调查,我了解到在这种情况下,nginx 将传入请求视为服务器,www.customuserdomain.com并且未正确处理它。

我该如何解决这个问题,我应该使用通配符服务器并处理应用程序端的请求 - 这感觉像是安全噩梦吗?或者也许有某种自动化工具可以为每个新域创建虚拟主机?只是大声思考,请帮忙:)

相关内容