ONLYOFFICE Document Server集群安装(Linux)

介绍

通过将集群安装和运行Document Server,您可以:

  • 以分布式方式运行Document Server和所有必要的基础结构;
  • 灵活地扩展Document Server的性能;
  • 提供容错和应用程序的高可用性。

本指南将向您展示如何安装Document Server并将其作为群集服务运行。

集群结构

Document Server群集的结构如下所示:

将Document Server作为群集安装

使用集群的以下元素:

  • 负载平衡器 -接收来自用户的请求并将其重定向到安装了Document Server的内部服务器的服务器
  • Document Server 1 … DocumentServer N-一组装有Document Server的服务器,用于处理从用户处接收到的请求并允许进行文档编辑。
  • Redis服务器 -用作会话存储和锁定存储的服务器(或一组服务器)。
  • RabbitMQ服务器 -用于处理转换任务队列,结果任务队列和事件总线的服务器(或一组服务器)。
  • PostgreSQL服务器 -用于存储编辑的文件更改的服务器(或一组服务器)。
  • 存储服务器 -用作工作文件存储的服务器(或一组服务器)。

Redis的服务器存储服务器RabbitMQ的服务器PostgreSQL服务器在这里都为组服务器的共享资源文件服务器安装。

因此,要创建一个工作集群,需要执行以下任务:

  1. 运行安装了Document Server的一组服务器;
  2. 配置每个已安装的Document Server实例,以使其与共享资源一起正常工作;
  3. 将传入的用户请求重新分配给安装了Document Server的服务器组。

安装和运行一组文档服务器

这些文章中逐步描述了Document Server的安装:对于Debian,Ubuntu及其衍生产品以及对于CentOS及其衍生产品。对于将要安装文档服务器的每个服务器,必须以相同的方式执行安装。完成后,您可以跳到下一步。

配置文件服务器

Document Server设置参数存储在以下文件中:

  • default.json- 在此处查看具有默认设置的文件示例;
  • production-linux.json- 在此处查看具有默认设置的文件示例。

安装后,两个配置文件都可以在该文件夹中找到。/etc/onlyoffice/documentserver

下表中列出了每个群集元素,请参阅文档服务器正确编辑所需的参数:

PostgreSQL服务器
位置 参数 描述
default.json services.CoAuthoring.sql.dbHost 运行PostgreSQL服务器的主机的IP地址或名称。
services.CoAuthoring.sql.dbPort 用于与其连接的PostgreSQL服务器端口号。
services.CoAuthoring.sql.dbName 在映像启动时要创建的PostgreSQL数据库的名称。
services.CoAuthoring.sql.dbUser PostgreSQL帐户的用户名。
services.CoAuthoring.sql.dbPass 为PostgreSQL帐户设置的密码。

如果在产品安装后设置与PostgreSQL服务器的连接,则还需要在数据库中创建表。使用以下命令完成此操作:

psql -q -hDB_HOST -UDB_USER -d DB_NAME -f /var/www/onlyoffice/documentserver/server/schema/postgresql/createdb.sql

哪里

  • DB_HOST 是运行PostgreSQL服务器的主机的IP地址或名称;
  • DB_USER 是PostgreSQL帐户的用户名;
  • DB_NAME 是要创建的PostgreSQL数据库的名称。
"services": {    "CoAuthoring": {        "sql": {            ...            "dbHost": "sql.example.com",            "dbPort": 5432,            "dbName": "onlyoffice",            "dbUser": "onlyoffice",            "dbPass": "onlyoffice",            ...        }    }}
RabbitMQ服务器
位置 参数 描述
default.json rabbitmq.url 用于连接到RabbitMQ服务器的AMQP URL。
"rabbitmq": {    "url": "amqp://rabbitmq.example.com",    ...}
Redis服务器
位置 参数 描述
default.json services.CoAuthoring.redis.host 运行Redis服务器的主机的IP地址或名称。
services.CoAuthoring.server.port 用于与其连接的Redis服务器端口号。
"services": {    "CoAuthoring": {        "redis": {            ...            "host": "redis.example.com",            "port": 6379        }    }}
仓储服务
位置 参数 描述
生产-linux.json storage.fs.folderPath 文件存储服务的路径。

在配置存储时,强烈建议您不要更改文件存储的路径。您可以将共享网络文件夹映射到该/var/lib/onlyoffice/documentserver/App_Data文件夹。

如果您希望更改存储路径,则还需要更改内部代理服务器配置文件中的路径:

sudo sed 's,/var/lib/onlyoffice/documentserver/App_Data,'enter_you_path',' -i /etc/nginx/conf.d/includes/onlyoffice-documentserver-docservice.conf
sudo service nginx reload
"storage": {    ...    "fs": {        "folderPath": "/var/lib/onlyoffice/documentserver/App_Data/cache/files",        ...    }}

在应用程序安装或配置期间,可以编辑上面的某些属性。

更改配置文件后,有必要使用以下命令重新启动服务:

sudo supervisorctl restart onlyoffice-documentserver:docservice
sudo supervisorctl restart onlyoffice-documentserver:converter

分配传入请求

我们建议您使用HAProxy代理服务器分发用户传入的请求。示例配置文件在此处可用。

保存并打开以进行编辑。找到看起来像这样的行:

server onlyoffice-documentserver-X backendserver-address-X check inter 2000 rise 2 fall 3

并编辑将其backendserver-address-X更改为安装了Document Server的服务器地址的值。

行数必须等于后端服务器的数量。例如,如果您有三台安装了Document Server的服务器,则此配置文件部分将如下所示:

server onlyoffice-documentserver-1 http://documentserver1.example.com check inter 2000 rise 2 fall 3server onlyoffice-documentserver-2 http://documentserver2.example.com check inter 2000 rise 2 fall 3server onlyoffice-documentserver-3 http://documentserver3.example.com check inter 2000 rise 2 fall 3