【问题标题】:Multiple redmine instances best practices多个 redmine 实例最佳实践
【发布时间】:2013-03-05 11:00:46
【问题描述】:

我正在研究在同一服务器上拥有多个 redmine 实例的最佳方式(基本上我需要为每个 redmine 组创建一个数据库)。

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

  1. 为每个组部署一个 redmine 实例
  2. 部署一个具有多个数据库的 redmine 实例

我真的不知道在这种情况下最好的做法是什么,我见过一些人在这两种情况下都这样做。

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

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

对于这种情况有什么好的做法吗?在这种情况下采取什么最佳做法?

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

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

编辑:

我的解决方案: 我为每个组使用了一个 redmine 实例。我使用 nginx+unicorn 独立管理每个实例(因为乘客不允许我独立管理每个实例)。

【问题讨论】:

    标签: ruby-on-rails nginx redmine multiple-instances


    【解决方案1】:

    这两个选项毕竟没有太大区别。唯一的区别是,在选项 2 中,您的磁盘上只有一份代码副本。

    无论如何,您仍然需要为每个实例运行不同的工作进程,因为 Redmine(以及通常大多数 Rails 应用程序)不支持每个请求的数据库切换,并且有关特定环境的一些数据在进程中缓存。

    鉴于此,即使是共享代码库也没有太大的动力,因为它需要某些猴子补丁和符号链接魔术来允许对有意的配置差异(数据库和电子邮件配置、上传文件的路径、. ..)。 Debian 软件包可以做到这一点,但它(在我看来)相当脆弱,并导致了一个相当非标准的系统。

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

    【讨论】:

      【解决方案2】:

      Redmine 不正式支持从同一代码库运行多个实例。但是,Debian/Ubuntu 软件包似乎支持这种方法......请参阅:

      所以,一般来说:

      • 如果您使用 Debian/Ubuntu,请使用选项 #2
      • 否则使用#1​​li>

      【讨论】:

      • 我正在使用基于 debian 的服务器,我将尝试使用 #2 进行部署,但该链接没有太多关于如何执行此操作的信息
      【解决方案3】:

      几年后,您现在可能需要考虑第三种选择,即为每个 redmine 实例使用 docker 容器。

      我一直在使用 https://github.com/sameersbn/docker-redmine.git ,并且对它非常满意,只是它尚不支持处理传入邮件以创建和评论工单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-29
        • 2013-01-08
        • 1970-01-01
        • 2019-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多