Mat*_*kin 29 subdomain multi-tenant
ger*_*tas 17
有几种方法可以在HTTP级别上确定租户:
Host标头决定Host头的子域部分,host.com/tenantId/...以下是您的问题的答案:
如果您想让用户感受到完全孤立的租赁,那么(子)域多租户是很好的.客户可能需要自定义欢迎和登录页面,单独的用户群等.另一方面,基于路径的多租户适用于未固定到单租户命名空间的用户.它主要用于Facebook,GitHub等社交网络.
(子)域可以为cookie提供更好的隔离和安全控制,跨域资源共享(CORS).它使交叉租户CSRF或XSS更难.此外,如果您可以控制DNS或负载均衡器,则可以将租户分配给不同的IP(想想地理路由)或不同版本的应用程序(例如beta租户).您可以为最重要的租户分配单独的应用实例或服务器.通过这种方式,您可以获得一种廉价的工具来控制单点故障的风险以及一篮子中的所有鸡蛋.
任何允许您访问HTTP头(Host)的Web框架都具有子域功能.任何严肃的MVC Web框架都应该直接或通过插件为您提供子域作为操作参数.
这绝对是一个设计选择.如果您想知道最佳方式,请考虑您希望租户的隔离级别.如果你决定但是你会发现方法不对,那么你可以借助HTTP 301重定向迁移到另一个级别.