为 SAAS 客户组织 DNS 服务

Organize DNS service for SAAS customers

这是我第一次从事 SAAS 项目。

我有两个关于项目架构的问题:

  1. 关于用户的 DNS - 我如何创建 DNS 记录,以及如何创建 用户绑定自己的域?
  2. 使用一处存储的后端代码,无需为任何新用户制作副本。

项目后端是使用PHP 7开发的。

很好的例子是 WIX(只需点击几下即可帮助用户创建漂亮网站的项目)。

注册后获得三级域名"username.wix.com"之类的,还可以绑定自己的域名。 框架后端代码存储在一个地方(它肯定不能为任何新用户每次都复制,否则服务所有者将失去对更新的所有控制并有很多不必要的副本)。

那么问题来了,要实现这样的架构,后台代码存放在一个地方,用户注册后获得三级域名,可以绑定自己的域名怎么办?同时所有可执行代码都存储在一个地方(例如:SSD)并连接到所有用户?

提前感谢您提供任何信息!

我就是这样做的。

第一步:分离

  1. 客户端网站指向通配符 DNS A 记录 *.mysite.com
  2. 您的着陆页网站 mysite.com 指向 mysite.com

第 2 步:注册用户

通过您的 mysite.com 表单注册用户,然后将其存储在您的数据库中。 这两个站点应该共享同一个数据库。

第 3 步:根据子域呈现页面。

  • 查找域或子域是否已注册到连接到用户的数据库。
  • 如果不存在则呈现 404。
  • 否则呈现用户页面。

第 4 步:自定义域

您需要指示您的用户创建一个指向您的 public IP 的 A 记录,并具有验证和创建与您的数据库的连接的形式。 参考这里https://help.shopify.com/en/manual/domains/add-a-domain/using-existing-domains/connecting-domains#set-up-your-existing-domain-to-connect-to-shopify