需要什么样的 DNS 和 IIS 配置才能允许多个域指向多租户 Web 应用程序?

需要什么样的 DNS 和 IIS 配置才能允许多个域指向多租户 Web 应用程序?

我正在 ASP.NET MVC 中开发一个多租户 Web 应用程序,它将为我的用户提供指向其帐户页面的自定义子域(如 user.myapp.com)的功能。我已经通过使用通配符 DNS 条目和代码来查询数据库以根据域加载用户数据来使其正常工作。

我计划提供使用自定义域名的可能性,允许用户购买自己的域名并使用它来代替默认提供的子域名。

我目前使用 DNSMadeEasy 来托管应用程序主域的 DNS。

我只是不知道我必须进行什么样的设置才能使此功能正常工作,因为用户的域名将托管在多家公司。我是否必须创建自己的名称服务器并将其提供给我的用户?

为了有效地实施它,我还必须考虑哪些事情?

答案1

这应该是检查主机头的情况:

string incomingUrl = Request.Url.Host;

switch (incomingUrl)
{
  case "user.domain.com":
    //Do your dynamic output here
    break;
  case "www.totallydifferentdomain.com":
    //Do your dynamic output here
    break;
}

一旦您的应用程序中有了类似的逻辑,那么您所要做的就是让您的用户设置他们的 DNS 以将 CNAME 指向您的服务器,这样您的服务器就会看到 Request.Url.Host 值被设置为他们的域名。

相关内容