在不同计算机上安装社区服务器和文档服务器(基于RPM的Linux)
介绍
将Community Server安装并运行在与Document Server不同的计算机上,可以实现以下功能:
- 以分布式方式运行ONLYOFFICE Workspace企业版及其组件;
- 灵活扩展ONLYOFFICE Workspace企业版的性能;
- 提供应用的容错和高可用性。
本指南将向您展示如何在不同计算机上安装Community Server和Document Server。
安装和激活Document Server
首先按照本文中的说明安装Document Server。
安装完成后,将许可证文件上传到/var/www/onlyoffice/Data/文件夹。
运行和配置Control Panel
现在在另一台计算机上设置Control Panel的Docker版本。使用以下命令:
sudo docker run --net onlyoffice -i -t -d --name onlyoffice-control-panel --restart=always -p 80:80 -p 443:443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /app/onlyoffice/CommunityServer/data:/app/onlyoffice/CommunityServer/data \
-v /app/onlyoffice/DocumentServer/data:/app/onlyoffice/DocumentServer/data \
-v /app/onlyoffice/MailServer/data:/app/onlyoffice/MailServer/data \
-v /app/onlyoffice/ControlPanel/data:/var/www/onlyoffice-controlpanel/Data \
-v /app/onlyoffice/ControlPanel/logs:/var/log/onlyoffice-controlpanel \
-v /app/onlyoffice/ControlPanel/mysql:/var/lib/mysql \
onlyoffice4enterprise/controlpanel-ee:1.6.1.106
安装完成后,进入Docker容器,找到两个配置文件:/var/www/onlyoffice-controlpanel/ControlPanel/Web.config和/var/www/onlyoffice-controlpanel/ControlPanel2/Web.config。打开它们进行编辑,修改两个文件中的以下行:
<add key="web.portal" value="http://communityserver/" /><add key="web.api-system" value="http://communityserver/apisystem/api" />
其中communityserver是将要安装Community Server的计算机地址。
<add key="web.portal" value="http://communityserver/" />会被默认值覆盖。之后重启带有Control Panel的网站:
service monoserve restart
安装和配置Community Server
安装Community Server
现在需要在第三台计算机上安装Community Server。请阅读安装说明以获取详细信息。
输入Document Server和Control Panel的位置
打开/var/www/onlyoffice/WebStudio/web.appsettings.config文件,编辑并修改以下行:
<add key="web.controlpanel.url" value="/controlpanel/" /><add key="files.docservice.url.public" value="http://documentserver/" /><add key="files.docservice.url.internal" value="http://documentserver/" /><add key="files.docservice.url.portal" value="http://communityserver/" />
其中documentserver是Document Server的地址,且<add key="web.controlpanel.url" value="/controlpanel/" />必须严格按照上面第1行的格式填写。
启用多租户
现在需要启用多租户功能,以确保ONLYOFFICE Workspace企业版组件在不同计算机上正常工作。打开/etc/nginx/conf.d/onlyoffice.conf文件,编辑其主端口80部分,修改如下:
location /controlpanel {proxy_pass http://controlpanel;client_max_body_size 100m;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Host $server_name;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-REWRITER-URL $scheme://$http_host;}location /apisystem {rewrite /apisystem(.*) /$1 break;proxy_pass http://localhost:8080;proxy_redirect ~*/(.*) /apisystem/$1;client_max_body_size 100m;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Host $server_name;proxy_set_header X-Forwarded-Proto $scheme;}
您需要将上面第2行中的http://controlpanel地址设置为实际的Control Panel地址。
附加更改
现在创建/var/www/onlyoffice/DocumentServerData/文件夹,并使用以下命令更改其所有者:
chown -R onlyoffice:onlyoffice /var/www/onlyoffice/DocumentServerData/
之后重启Community Server应用:
service monoserve restart
service nginx restart
访问Community Server门户
现在您可以访问Community Server门户。在浏览器中打开它(如果从另一台计算机访问,使用计算机IP地址;如果从局域网外访问,使用互联网地址;如果在安装了它的同一台计算机上运行,则使用localhost或127.0.0.1地址)。
按照向导说明操作,别忘了使用收到的许可证密钥激活您的Community Server副本(通过向导中的许可证激活文件部分的上传文件按钮)。
为ONLYOFFICE Workspace企业版设置HTTPS连接协议
根据Document Server和Control Panel的部署方式,启用ONLYOFFICE Workspace企业版的HTTPS可能有两种不同方案:
- Document Server和Control Panel与Community Server处于同一私有局域网内;
- Document Server、Control Panel和Community Server不在同一私有局域网内,且都需要切换到HTTPS。
下面将分别介绍这两种方案的具体问题。
方案1:所有计算机处于同一私有局域网
修改NGINX配置
首先按照本文说明修改NGINX服务配置以使用HTTPS。需要设置以下参数:
- {{ONLYOFFICE_NGINX_KEEPLIVE}} - 设置值为
64; - {{DOCKER_ONLYOFFICE_SUBNET}} - 设置计算机(Document Server、Control Panel、Community Server)所在子网的掩码,例如
172.18.0.0/16; - {{ONLYOFFICE_SERVICES_HOST}} - 设置为
localhost; - {{DOCUMENT_SERVER_HOST_ADDR}} - Document Server的本地地址;
- {{CONTROL_PANEL_HOST_ADDR}} - Control Panel的本地地址。
其他参数的值请参见如何将Community Server切换到HTTPS协议?一文。
编辑Community Server配置文件
打开安装了Community Server的计算机上的/var/www/onlyoffice/WebStudio/web.appsettings.config文件,编辑并修改以下行:
<add key="files.docservice.url.public" value="http://documentserver-localaddress/" /><add key="files.docservice.url.internal" value="http://documentserver-localaddress/" /><add key="files.docservice.url.portal" value="http://communityserver-localaddress/" />
其中documentserver-localaddress是Community Server可访问的局域网内Document Server地址。
重启网站
现在需要重启网站和NGINX服务:
service monoserve restart
service nginx restart
编辑Control Panel配置文件
进入Control Panel的Docker容器,找到两个配置文件:/var/www/onlyoffice-controlpanel/ControlPanel/Web.config和/var/www/onlyoffice-controlpanel/ControlPanel2/Web.config。打开它们进行编辑,修改两个文件中的以下行:
<add key="web.portal" value="http://communityserver-localaddress/" /><add key="web.api-system" value="http://communityserver-localaddress/apisystem/api" />
其中communityserver-localaddress是Control Panel可访问的局域网内Community Server地址。
之后重启带有Control Panel的网站:
service monoserve restart
方案2:所有计算机各自处于不同网络
切换Document Server到HTTPS
首先将Document Server切换到HTTPS连接协议。请阅读如何将Document Server切换到HTTPS协议?了解具体操作。
编辑Control Panel配置文件
进入Control Panel的Docker容器,找到/etc/nginx/sites-available/onlyoffice-controlpanel配置文件。打开编辑,修改listen 80部分如下:
listen 0.0.0.0:443 ssl;listen [::]:443 ssl default_server;server_tokens off;root /usr/share/nginx/html;## 如果需要上传大附件,请增加此值client_max_body_size 100m;## 强化SSL安全## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.htmlssl on;ssl_certificate {{SSL_CERTIFICATE_PATH}};ssl_certificate_key {{SSL_KEY_PATH}};ssl_verify_client {{SSL_VERIFY_CLIENT}};ssl_client_certificate {{CA_CERTIFICATES_PATH}};ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_session_cache builtin:1000 shared:SSL:10m;ssl_prefer_server_ciphers on;add_header Strict-Transport-Security max-age={{ONLYOFFICE_HTTPS_HSTS_MAXAGE}};# add_header X-Frame-Options SAMEORIGIN;add_header X-Content-Type-Options nosniff;## [可选] 如果您的证书支持OCSP,可启用OCSP stapling以减少SSL运行的开销和延迟。## 替换为您的ssl_trusted_certificate。详情见:## - https://medium.com/devops-programming/4445f4862461## - https://www.ruby-forum.com/topic/4419319## - https://www.digitalocean.com/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx# ssl_stapling on;# ssl_stapling_verify on;# ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt;# resolver 208.67.222.222 208.67.222.220 valid=300s; # 可根据需要更改为您的DNS解析器# resolver_timeout 10s;## [可选] 生成更强的DHE参数:## cd /etc/ssl/certs## sudo openssl dhparam -out dhparam.pem 4096##ssl_dhparam {{SSL_DHPARAM_PATH}};
之后重启NGINX服务:
service nginx restart
配置Community Server
现在访问安装了Community Server的计算机,按照本文说明修改NGINX服务配置以使用HTTPS。需要设置以下参数:
- {{ONLYOFFICE_NGINX_KEEPLIVE}} - 设置值为
64; - {{DOCKER_ONLYOFFICE_SUBNET}} - 设置随机子网掩码,例如
172.18.0.0/16; - {{ONLYOFFICE_SERVICES_HOST}} - 设置为
localhost; - {{DOCUMENT_SERVER_HOST_ADDR}} - Document Server的互联网地址;
- {{CONTROL_PANEL_HOST_ADDR}} - Control Panel的互联网地址。
其他参数的值请参见如何将Community Server切换到HTTPS协议?一文。
打开/var/www/onlyoffice/WebStudio/web.appsettings.config文件,编辑并修改以下行:
<add key="files.docservice.url.public" value="https://documentserver/" /><add key="files.docservice.url.internal" value="https://documentserver/" /><add key="files.docservice.url.portal" value="https://communityserver/" />
其中documentserver是当前Document Server的HTTPS地址。
重启网站
现在需要重启网站和NGINX服务:
service monoserve restart
service nginx restart