我正在处理的项目曾经是一个内部Intranet应用程序,但现在它被移植到多租户互联网应用程序。通常,在部署任何Web应用程序时,我们会使用在加入之前很久就存在的格式http://webapp.company.com
。
由于该项目现在是一个多租户应用程序,我试图在不同的架构之间做出决定。
1)使用客户端/租户作为主要主机URL的一部分
http://tenant.webapp.company.com
此方法需要额外的ssl证书和iis设置
2)将租户作为路由的一部分包含在内,租户名称将作为路由参数包含在内
http://webapp.company.com/{tenant}/my/route/url/{param}
在我看来,这种方法是“凌乱”的。我觉得这不是最正确的解决方案。
3)保留现有的http://webapp.company.com
网址,并在IIS中添加特定绑定,将请求的网址指向主机位置。
当用户输入网址http://tenant.company.com
时,他们将被提供给位于http://webapp.company.com
的应用程序。此方法的问题在于我们可能部署其他应用程序,但这不可扩展。
我倾向于第1号方法,因为我有实施它的经验(没有额外的域名)。 4级域是理想的吗?关于什么方法比另一方更好的想法?可能是一种新方法?任何意见都表示赞赏。
答案 0 :(得分:1)
将客户/租户用作主要主机网址的一部分
http://tenant.webapp.company.com
此方法需要额外的ssl证书和iis设置
实际上,您可以为*.webapp.company.com
使用wildcard certificate,这意味着您可以在没有其他IIS配置的情况下扩展此方案。
此外,这种方法在路由方面最为优雅。在GitHub上甚至有一个MVC-Subdomain-Routing项目可以用于某个方向(或者如果项目满足您的要求)。
另请参阅this question和this answer了解其他一些方法。