【问题标题】:DNS CNAME settings for pointing to custom domain (multi-tenant SaaS) [closed]用于指向自定义域的 DNS CNAME 设置(多租户 SaaS)[关闭]
【发布时间】:2021-10-22 20:07:22
【问题描述】:

我是 DNS 设置的新手,希望有人可以在这里帮助我。我检查了几个 stackoverflow 问题,但找不到解决方案。

我正在创建一个多租户 SaaS 应用程序 - 一个代码库,多个数据库。如果我的用户要拥有自己的自定义域,我应该要求他们更改其 DNS 设置中的哪些 CNAME 条目? 我希望用户在用户域设置中硬编码我的服务器的 IP 地址(使用名称)。我的应用托管在 apache 网络服务器 AWS Ec2 上。

【问题讨论】:

  • "我检查了几个 stackoverflow 问题,但找不到解决方案。"因为 DNS 问题与 StackOverflow 的主题编程无关。

标签: .htaccess dns multi-tenant saas cname


【解决方案1】:

CNAME 记录允许您指向另一个域或子域,但它们不允许将域的顶点(根)指向某个东西,只能指向一个子域。

例如,CNAME 可以将 subdomain.mydomain.com 指向 anotherdomain.com,但不能将 mydomain.com 指向 anotherdomain.com。

因此,您需要告诉他们将子域指向连接到您服务器的域或子域。最有可能的是,您需要告诉他们将 www 子域指向您的域/子域。

我建议让它们指向子域,因为您可能需要一种方法来轻松区分对自定义域的请求与您的 SaaS 应用程序的常规请求。

这方面的 DNS 记录如下所示:

类型:CNAME,主机:www,地址:subdomain.yourdomain.com,TTL:3600

还有一个问题是让他们指向 www 子域,而不是顶级域。如果有人忘记输入 www,他们将被带到 A 记录指向的任何地方(或者它不会解决,如果没有的话)。许多注册商/dns 提供商将允许您通过它们进行重定向,但不是全部。如果没有,他们将需要创建自己的虚拟主机来执行此操作,或者您必须告诉他们将他们的 A 记录指向您的服务器 IP 地址。

一些提供商还允许使用 ALIAS 记录,这基本上可以在后台发挥一些作用,让您将顶级域指向另一个域/子域,而不是 IP 地址。但是请注意,许多 DNS 提供商仍然不提供此功能,因此您不能完全依赖它。

最后,您需要处理接收来自自定义域的应用请求。这完全取决于您的应用程序的工作方式,但您可以做的一件事(如果您正在运行服务器端应用程序)是检查请求的主机标头,然后根据它返回不同的响应。

如果您更多地使用前端应用程序并请求 API,您可以使用 window.location.hostname 获取请求的自定义域,并将其与 API 请求一起发送以发回正确的数据。

来源:

在构建approximated.app 为人们解决这个问题时,我花了很多时间来处理这些问题。

【讨论】:

    猜你喜欢
    • 2011-03-05
    • 2018-08-20
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 2018-05-17
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多