介绍
通过将集群安装和运行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服务器在这里都为组服务器的共享资源文件服务器安装。
因此,要创建一个工作集群,需要执行以下任务:
- 运行安装了Document Server的一组服务器;
- 配置每个已安装的Document Server实例,以使其与共享资源一起正常工作;
- 将传入的用户请求重新分配给安装了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