Linux服务器部署ONLYOFFICE Docs:从零搭建到安全配置
2026/7/14 11:53:33 网站建设 项目流程

1. 环境准备与依赖安装

在开始部署ONLYOFFICE Docs之前,我们需要确保服务器满足基本运行条件。以CentOS 7为例,以下是关键依赖的安装步骤:

Node.js安装
作为文档渲染的核心引擎,建议安装Node.js 14+版本。执行以下命令添加官方源并安装:

curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash - sudo yum install -y nodejs

验证安装是否成功:

node -v # 应输出v14.x或更高版本

数据库配置
ONLYOFFICE依赖PostgreSQL存储文档元数据。安装后需调整认证方式:

sudo yum install -y postgresql-server sudo postgresql-setup initdb sudo systemctl start postgresql

修改/var/lib/pgsql/data/pg_hba.conf,将ident改为trust

host all all 127.0.0.1/32 trust host all all ::1/128 trust

重启服务后创建专用数据库:

sudo -u postgres psql -c "CREATE DATABASE onlyoffice;" sudo -u postgres psql -c "CREATE USER onlyoffice WITH PASSWORD 'StrongPassword123';" sudo -u postgres psql -c "GRANT ALL ON DATABASE onlyoffice TO onlyoffice;"

消息队列服务
RabbitMQ用于处理实时协作消息:

sudo yum install -y rabbitmq-server sudo systemctl start rabbitmq-server sudo rabbitmq-plugins enable rabbitmq_management # 启用监控面板

2. 核心服务部署与配置

字体库安装
确保系统包含常用字体以避免排版异常:

sudo yum install -y cabextract xorg-x11-font-utils sudo rpm -ivh https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm

ONLYOFFICE主程序安装
添加官方仓库并安装文档服务:

sudo yum install -y https://download.onlyoffice.com/repo/centos/main/noarch/onlyoffice-repo.noarch.rpm sudo yum install -y onlyoffice-documentserver

安装完成后会自动生成Nginx配置文件,位置在/etc/onlyoffice/documentserver/nginx/ds.conf

服务端口调整
若需修改默认80端口(例如改为8080):

sudo sed -i 's/listen 0.0.0.0:80/listen 0.0.0.0:8080/g' /etc/onlyoffice/documentserver/nginx/ds.conf sudo systemctl restart nginx

3. 安全加固策略

防火墙规则配置
开放必要端口并限制访问来源:

sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="8080" protocol="tcp" accept' sudo firewall-cmd --reload

SELinux策略调整
临时禁用或设置为宽松模式:

sudo setenforce 0 # 临时生效 sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config # 永久生效

JWT安全认证
编辑配置文件/etc/onlyoffice/documentserver/local.json启用密钥验证:

{ "services": { "CoAuthoring": { "token": { "enable": { "request": { "inbox": true, "outbox": true }, "browser": true }, "inbox": { "header": "Authorization" }, "outbox": { "header": "Authorization" }, "secret": "YourSecretKey123!" } } } }

重启服务使配置生效:

sudo supervisorctl restart all

4. 生产环境优化建议

资源隔离方案

  • 对PostgreSQL和RabbitMQ单独部署服务器
  • 使用Cgroups限制文档服务CPU/内存占用:
sudo systemctl set-property onlyoffice-documentserver.service CPUQuota=200% MemoryLimit=4G

高可用架构
通过Nginx实现负载均衡:

upstream documentserver { server 192.168.1.10:8080; server 192.168.1.11:8080; keepalive 15; } server { listen 80; location / { proxy_pass http://documentserver; proxy_http_version 1.1; proxy_set_header Connection ""; } }

监控与日志
配置日志轮转防止磁盘爆满:

sudo tee /etc/logrotate.d/onlyoffice <<EOF /var/log/onlyoffice/*.log { daily missingok rotate 30 compress delaycompress notifempty create 640 onlyoffice onlyoffice sharedscripts postrotate /usr/bin/supervisorctl restart onlyoffice-documentserver >/dev/null endscript } EOF

5. 故障排查指南

常见问题处理

  1. 文档加载失败
    检查浏览器控制台报错,常见原因包括:
  • JWT密钥不匹配(需检查集成系统配置)
  • 字体缺失(运行fc-list查看已安装字体)
  • 端口冲突(使用ss -tulnp确认端口占用)
  1. 协作不同步
    验证RabbitMQ状态:
sudo rabbitmqctl list_queues name messages_ready messages_unacknowledged

若队列堆积,可能需要调整消费者数量。

  1. 性能优化
    对于大型文档处理,建议:
  • 增加SWAP空间(至少4GB)
  • 调整V8引擎内存限制:
echo 'NODE_OPTIONS="--max_old_space_size=4096"' | sudo tee -a /etc/onlyoffice/documentserver/production-linux.json

日志分析技巧
关键日志文件位置:

  • 服务日志:/var/log/onlyoffice/documentserver/*.log
  • Nginx访问日志:/var/log/nginx/onlyoffice.access.log
  • PostgreSQL慢查询日志:/var/lib/pgsql/data/pg_log/

使用实时监控命令:

tail -f /var/log/onlyoffice/documentserver/docservice.log | grep -E "ERROR|WARN"

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询