(我不确定这是否是发表这个问题的最佳地点。如果没有,请将我重定向到适当的堆栈交换站点。)
我希望为多个客户端部署一个web应用程序。
这样做的目的是每个客户只能访问自己的数据。假设客户端是应用程序安装的所有者。每个安装都可以有多个用户。
我希望所有安装都在我自己的主机中,这样我就可以更好地控制代码和业务模型(客户端实际上将为服务的使用付费)。
我正在寻找技术选项来执行这种部署。
备选案文1
要做到这一点,最简单的办法是:
(我不要求用户必须是多个客户机/安装的公共用户)。
然而,这个解决方案有几个缺点:
因此,我更倾向于将数据隔离的另一种选择。
选项2
我正在考虑的另一种选择是:
例如,如果用户访问http://very-nice-app.com/client-3/,代码就知道它必须连接到数据库名- For -client-3。这可能是通过一些独立于主代码加载的配置文件来实现的。
这解决了数据泄漏的潜在问题,但需要维护多个数据库(如果DB表更改,则必须跨多个安装完成)。这很可能是自动化的。
问题
我的问题是,对于这种部署,有什么更好的选择。
谢谢。
发布于 2015-09-10 21:27:45
由于这并不是一个非常受欢迎的主题,所以我将留下一些链接,这些链接是我发布这个问题后发现的:
Best practices for creating multiple web app instance
http://forums.devshed.com/mysql-help-4/practice-opinions-multi-user-multi-organisation-web-app-812530.html
我在DBA Stack Exchange中也提出了这个问题,在这里,文章有一个评论和一个答复,导致了一个简短的讨论:
简而言之,“这取决于”:)。
https://stackoverflow.com/questions/32347154
复制相似问题