ruby-on-rails – 多个redmine实例的最佳实践

我正在研究在同一台服务器上安装多个redmine实例的最佳方法(基本上我需要为每个redmine组建一个数据库).

到目前为止,我有两个选择:

>为每个组部署redmine实例
>使用多个数据库部署一个redmine实例

我真的不知道在这种情况下最好的做法是什么,我看到有些人在这两方面做到这一点.

我用nginx和乘客测试了多个redmines(3个实例)的部署.它运作良好但我认为在很多情况下它可能不可行.每个应用程序需要大约100mb的RAM,随着请求的增加,它倾向于为应用程序分配更多的进程.如果我们有很多实例,这种情况似乎很糟糕.

选项2看起来很合理,我想我可以用rails环境实现它.但我认为存在一些与会话相关的安全问题(我认为站点A的用户在A中进行身份验证后可以在站点B上进行操作).

这种情况有什么好的做法吗?在这种情况下,最好的做法是什么?

与此相关的其他要求是:我们必须能够创建或关闭redmine实例而不中断其他实例(例如,我们应该避免重启服务器..).

感谢您的任何建议,对不起我的英语!

编辑:

我的解决方案
我为每个组使用了redmine实例.我使用nginx独角兽独立管理每个实例(因为乘客不允许我独立管理每个实例).

最佳答案
毕竟这两个选项并没有那么不同.唯一的区别是在选项2中,您只有一个代码副本在磁盘上.

在任何情况下,您仍然需要为每个实例运行不同的工作进程,因为Redmine(通常是大多数Rails应用程序)不支持每个请求的数据库切换,并且某些环境中的某些数据会在进程中缓存.

鉴于此,甚至没有太多的动机来共享代码库,因为它需要某些猴子补丁和符号链接魔法才能正确初始化有意的配置差异(数据库和电子邮件配置,上传文件的路径……) . Debian软件包可以做到这一点,但它(在我看来)相当脆弱,导致一个相当不规范的系统.

但要再次强调:即使您在实例之间共享磁盘上的相同代码,也无法共享正在运行的工作进程.

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...