OnlyOffice非Docker环境私有化部署全攻略

作者:渣渣辉2025.10.11 20:07浏览量:0

简介:本文详细介绍OnlyOffice在非Docker环境下的私有化部署方案,涵盖环境准备、依赖安装、配置调整及安全加固等关键步骤,助力企业实现文档协作的自主可控。

一、引言:为何选择非Docker私有化部署?

在数字化转型浪潮中,企业对文档协作工具的需求日益增长。OnlyOffice作为一款开源的在线办公套件,因其强大的功能(如文档编辑、表格处理、演示文稿等)和灵活的部署方式,成为众多企业的首选。然而,对于部分企业而言,Docker容器化部署可能带来额外的运维复杂度,或因安全策略限制无法使用Docker。因此,非Docker环境下的OnlyOffice私有化部署显得尤为重要。本文将详细阐述如何在非Docker环境中完成OnlyOffice的私有化部署,确保企业数据的安全与可控。

二、部署前准备:环境与依赖

1. 系统要求

OnlyOffice支持多种Linux发行版,如Ubuntu、CentOS等。建议选择长期支持(LTS)版本,以确保系统稳定性。硬件方面,根据并发用户数合理配置CPU、内存和存储空间。例如,对于中小型企业,4核CPU、8GB内存和100GB存储空间通常足够。

2. 依赖安装

OnlyOffice的部署依赖于多个组件,包括但不限于:

  • Nginx/Apache:作为反向代理服务器,处理HTTP请求。
  • PostgreSQL:存储OnlyOffice的元数据和用户信息。
  • Redis:用于缓存和会话管理,提升系统性能。
  • Node.js:运行OnlyOffice的前端服务。
  • Mono(仅限Linux):用于运行.NET编写的后端服务(如Document Server)。

以Ubuntu为例,安装命令如下:

  1. # 更新系统包列表
  2. sudo apt update
  3. # 安装Nginx
  4. sudo apt install nginx
  5. # 安装PostgreSQL
  6. sudo apt install postgresql postgresql-contrib
  7. # 安装Redis
  8. sudo apt install redis-server
  9. # 安装Node.js(建议使用nvm管理版本)
  10. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  11. nvm install --lts
  12. # 安装Mono(仅限需要.NET服务的场景)
  13. sudo apt install gnupg ca-certificates
  14. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
  15. echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
  16. sudo apt update
  17. sudo apt install mono-complete

三、OnlyOffice核心组件部署

1. 下载与解压

从OnlyOffice官方GitHub仓库下载最新版本的社区版或企业版(根据需求选择)。以社区版为例:

  1. wget https://github.com/ONLYOFFICE/CommunityServer/archive/refs/tags/vX.X.X.tar.gz
  2. tar -xzvf vX.X.X.tar.gz
  3. cd CommunityServer-X.X.X

2. 配置数据库

修改config/default.json文件中的数据库连接信息:

  1. {
  2. "db": {
  3. "server": "localhost",
  4. "port": 5432,
  5. "user": "onlyoffice",
  6. "password": "your_password",
  7. "db": "onlyoffice_db"
  8. }
  9. }

创建数据库和用户:

  1. sudo -u postgres psql
  2. CREATE DATABASE onlyoffice_db;
  3. CREATE USER onlyoffice WITH PASSWORD 'your_password';
  4. GRANT ALL PRIVILEGES ON DATABASE onlyoffice_db TO onlyoffice;

3. 配置Nginx/Apache

以Nginx为例,编辑/etc/nginx/sites-available/onlyoffice

  1. server {
  2. listen 80;
  3. server_name your_domain.com;
  4. location / {
  5. proxy_pass http://localhost:8000;
  6. proxy_set_header Host $host;
  7. proxy_set_header X-Real-IP $remote_addr;
  8. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9. }
  10. location /documentserver/ {
  11. proxy_pass http://localhost:8080/;
  12. proxy_set_header Host $host;
  13. proxy_set_header X-Real-IP $remote_addr;
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  15. }
  16. }

启用配置并重启Nginx:

  1. sudo ln -s /etc/nginx/sites-available/onlyoffice /etc/nginx/sites-enabled/
  2. sudo systemctl restart nginx

4. 启动服务

OnlyOffice包含多个服务,如API服务、文档服务等。通常,社区版提供了启动脚本(如run_community_server.sh),直接运行即可:

  1. ./run_community_server.sh

或通过systemd管理服务:

  1. # 创建/etc/systemd/system/onlyoffice.service
  2. [Unit]
  3. Description=OnlyOffice Community Server
  4. After=network.target
  5. [Service]
  6. Type=simple
  7. User=onlyoffice
  8. WorkingDirectory=/path/to/CommunityServer-X.X.X
  9. ExecStart=/usr/bin/node server.js
  10. Restart=on-failure
  11. [Install]
  12. WantedBy=multi-user.target

启用并启动服务:

  1. sudo systemctl daemon-reload
  2. sudo systemctl enable onlyoffice
  3. sudo systemctl start onlyoffice

四、安全加固与优化

1. HTTPS配置

使用Let’s Encrypt免费证书启用HTTPS:

  1. sudo apt install certbot python3-certbot-nginx
  2. sudo certbot --nginx -d your_domain.com

自动续期配置:

  1. sudo certbot renew --dry-run

2. 防火墙规则

限制不必要的端口访问:

  1. sudo ufw allow 80/tcp
  2. sudo ufw allow 443/tcp
  3. sudo ufw enable

3. 性能调优

  • Redis配置:调整maxmemorymaxmemory-policy以避免内存溢出。
  • PostgreSQL调优:修改postgresql.conf中的shared_bufferswork_mem等参数。
  • Nginx缓存:启用静态资源缓存,减少服务器负载。

五、总结与展望

非Docker环境下的OnlyOffice私有化部署,虽然步骤相对复杂,但为企业提供了更高的灵活性和可控性。通过合理的环境准备、依赖安装、配置调整和安全加固,企业可以构建一个稳定、高效的文档协作平台。未来,随着OnlyOffice功能的不断迭代,非Docker部署方案也将持续优化,满足更多场景下的需求。