Redmine应用程序本身(几乎,见下文)是无状态的,因为所有状态都保存在底层数据库中。您可以在不同的服务器/ VM上轻松运行多个Redmine实例,所有实例都通过指定数据库指向单个数据库(集群) database.yml 。唯一剩下的部分是存储在的文件附件 files/ 在Redmine内。你必须把它放在网络共享上。
database.yml
files/
然后,可以使用任何具有负载平衡功能的反向代理(例如HAProxy)在Redmine实例之间分发请求,或者在其中一个实例发生故障转移时实现故障转移。
要使数据库具有高可用性,您必须查看所选DBMS的复制功能。例如,PostgreSQL有一个 有关HA的部分 在其文档中。
这不是黑魔法,但它需要不断的努力才能让Redmine大规模快速可靠地运行。我的公司 Planio Redmine Hosting 每天都这样做。