Jos*_*osa 5 ruby-on-rails nginx multiple-instances redmine
我正在研究在同一台服务器上安装多个redmine实例的最佳方法(基本上我需要为每个redmine组建一个数据库).
到目前为止,我有两个选择:
我真的不知道在这种情况下最好的做法是什么,我看到有些人在这两方面做到这一点.
我用nginx和乘客测试了多个redmines(3个实例)的部署.它运作良好但我认为在很多情况下它可能不可行.每个应用程序需要大约100mb的RAM,随着请求的增加,它倾向于为应用程序分配更多的进程.如果我们有很多实例,这种情况似乎很糟糕.
选项2看起来很合理,我想我可以用rails环境实现它.但我认为存在一些与会话相关的安全问题(我认为站点A的用户在A中进行身份验证后可以在站点B上进行操作).
这种情况有什么好的做法吗?在这种情况下,最好的做法是什么?
与此相关的其他要求是:我们必须能够在不中断其他实例的情况下创建或关闭redmine实例(例如,我们应该避免服务器重启...).
感谢您的任何建议,对不起我的英语!
编辑:
我的解决方案:我为每个组使用了redmine实例.我使用nginx + unicorn独立管理每个实例(因为乘客不允许我独立管理每个实例).
毕竟这两个选项并没有那么不同。唯一的区别是,在选项 2 中,您的磁盘上只有一份代码副本。
无论如何,您仍然需要为每个实例运行不同的工作进程,因为Redmine(通常是大多数Rails应用程序)不支持每个请求的数据库切换,并且有关特定环境的一些数据会在进程中缓存。
鉴于此,甚至没有太多动力去共享代码库,因为它需要某些猴子补丁和符号链接魔术来允许对有意的配置差异进行正确的初始化(数据库和电子邮件配置、上传文件的路径……) 。Debian 软件包可以做到这一点,但(在我看来)它相当脆弱,并且会导致系统相当不标准。
但再次强调:即使您在实例之间共享磁盘上的相同代码,也无法共享正在运行的工作进程。
| 归档时间: |
|
| 查看次数: |
3359 次 |
| 最近记录: |