shopify.com、github.io、volusion.com 等网站如何支持每个用户拥有多个子域?
How do sites like shopify.com, github.io, volusion.com, support multiple subdomains per user?
我喜欢第三方应用 运行 在 *.github.io
*.shopify.com
*.volusion.com
的想法,人们制作自己的页面(modify/use 模板),并且主机里面。
我对建筑很感兴趣,这一切是如何发生的?
- 他们是将文件保存在磁盘中,还是写入数据库中
- 如何轻松管理动态子域?
- 幕后发生了什么?
- 他们使用什么语言?
这叫做multitenancy。它可以在许多不同的服务器平台上以多种方式实现。有若干件,例如:
- URL 重写在负载平衡器或 Web 服务器级别处理的规则,让
*.site.com
充当 site.com/users
,或者根据您的平台架构达到那种效果
- 租户(用户)及其相关帐户名或子域的数据库
- 根据调用租户的每个请求有条件地切换数据库连接(或 table 或安全修饰符等)的路由或解析代码
最终,租户只是数据库 table 某处的一行,应用程序以通用方式编写,因此每个租户都使用相同的 "base" 代码。它的工作原理和实现方式因应用程序而异。
更新:根据您的评论,这里有一些资源专门处理 ASP.NET 中的租赁:
- Simple Multitenancy With ASP.NET MVC 4
- Developing Multi-tenant Applications for the Cloud, 3rd Edition(免费的 Microsoft 电子书)
- ASP.NET MVC 5, Entity Framework, Ninject and Multi Tenancy Setup
- Multi-tenancy in ASP.NET MVC
我喜欢第三方应用 运行 在 *.github.io
*.shopify.com
*.volusion.com
的想法,人们制作自己的页面(modify/use 模板),并且主机里面。
我对建筑很感兴趣,这一切是如何发生的?
- 他们是将文件保存在磁盘中,还是写入数据库中
- 如何轻松管理动态子域?
- 幕后发生了什么?
- 他们使用什么语言?
这叫做multitenancy。它可以在许多不同的服务器平台上以多种方式实现。有若干件,例如:
- URL 重写在负载平衡器或 Web 服务器级别处理的规则,让
*.site.com
充当site.com/users
,或者根据您的平台架构达到那种效果 - 租户(用户)及其相关帐户名或子域的数据库
- 根据调用租户的每个请求有条件地切换数据库连接(或 table 或安全修饰符等)的路由或解析代码
最终,租户只是数据库 table 某处的一行,应用程序以通用方式编写,因此每个租户都使用相同的 "base" 代码。它的工作原理和实现方式因应用程序而异。
更新:根据您的评论,这里有一些资源专门处理 ASP.NET 中的租赁:
- Simple Multitenancy With ASP.NET MVC 4
- Developing Multi-tenant Applications for the Cloud, 3rd Edition(免费的 Microsoft 电子书)
- ASP.NET MVC 5, Entity Framework, Ninject and Multi Tenancy Setup
- Multi-tenancy in ASP.NET MVC