导读:本期聚焦于小伙伴创作的《Docker Compose部署OnlyOffice完整指南:配置解析与Nginx反向代理实战》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Docker Compose部署OnlyOffice完整指南:配置解析与Nginx反向代理实战》有用,将其分享出去将是对创作者最好的鼓励。

使用Docker Compose一键部署OnlyOffice的完整指南与配置解析

OnlyOffice Document Server是一款强大的在线办公套件,支持文档、表格和演示文稿的实时协同编辑。将其部署在自有服务器上,不仅可以保障数据安全,还能与NextCloud、OwnCloud等网盘系统无缝集成。本文将详细介绍如何使用Docker Compose实现OnlyOffice的一键部署,并对其核心配置进行深度解析。

一、部署前置准备

在开始部署之前,请确保您的服务器已经安装了以下环境:

  • Docker引擎:推荐使用20.10及以上版本。

  • Docker Compose:推荐使用V2版本(即使用docker compose命令)。

  • 系统资源:OnlyOffice对内存要求较高,建议服务器至少配备2GB以上的RAM。

二、编写Docker Compose配置文件

在服务器上创建一个工作目录,例如onlyoffice-docker,并在该目录下新建docker-compose.yml文件。以下是一个经过生产环境验证的完整配置:

version: '3.8'

services:
  onlyoffice-documentserver:
    image: onlyoffice/documentserver:latest
    container_name: onlyoffice-server
    restart: always
    environment:
      - JWT_ENABLED=true
      - JWT_SECRET=your_strong_jwt_secret_here
    ports:
      - "8080:80"
      - "8443:443"
    volumes:
      - onlyoffice_data:/var/www/onlyoffice/Data
      - onlyoffice_logs:/var/log/onlyoffice
      - onlyoffice_lib:/var/lib/onlyoffice
      - onlyoffice_db:/var/lib/postgresql

volumes:
  onlyoffice_data:
  onlyoffice_logs:
  onlyoffice_lib:
  onlyoffice_db:

三、核心配置解析

上述配置文件虽然精简,但包含了运行OnlyOffice所需的关键要素,下面逐一进行解析:

1. 镜像与容器管理

  • image:使用官方提供的onlyoffice/documentserver:latest镜像,包含了Document Server、Node.js、PostgreSQL等所有依赖。

  • container_name:固定容器名称,方便后续日志查看与管理。

  • restart: always:确保服务器重启或容器异常退出时,OnlyOffice能够自动拉起。

2. 安全与JWT认证

从7.2版本开始,OnlyOffice默认强制开启JWT(JSON Web Token)签名验证,以防止恶意请求伪造。在生产环境中,绝对不要关闭JWT

  • JWT_ENABLED:设置为true开启令牌验证。

  • JWT_SECRET:自定义一个高强度密钥,集成到第三方网盘(如NextCloud)时,需要在此处以及网盘设置中填入相同的密钥。

3. 端口映射

  • "8080:80":将容器内部的80端口(HTTP)映射到宿主机的8080端口。

  • "8443:443":将容器内部的443端口(HTTPS)映射到宿主机的8443端口。如果您直接通过宿主机提供HTTPS服务,需要将证书挂载至数据卷中。

4. 数据持久化(Volumes)

为了避免容器重建后数据丢失,必须将关键目录映射到Docker命名卷或宿主机目录:

  • /var/www/onlyoffice/Data:存放证书文件、自定义字体及插件等。

  • /var/log/onlyoffice:日志文件,排查错误必备。

  • /var/lib/onlyoffice:缓存及运行库文件。

  • /var/lib/postgresql:数据库文件,存储文档状态信息。

2>四、启动与管理服务

docker-compose.yml所在目录下,执行以下命令启动服务:

# 后台启动服务
docker compose up -d

# 查看启动日志,确认各组件是否正常启动
docker compose logs -f

首次启动时,容器内部需要初始化数据库并启动多项服务,可能需要1-2分钟。当日志输出DocService is running时,说明服务已启动成功。

其他常用管理命令:

# 停止服务
docker compose down

# 重启服务
docker compose restart

# 更新镜像至最新版
docker compose pull
docker compose up -d

五、配置Nginx反向代理与SSL

在生产环境中,通常需要使用Nginx作为反向代理,并配置SSL证书以支持HTTPS访问。OnlyOffice的协同编辑功能(WebSocket)强依赖HTTPS环境。以下为Nginx配置示例:

server {
    listen 443 ssl;
    server_name www.ipipp.com;

    ssl_certificate /etc/ssl/certs/your_cert.pem;
    ssl_certificate_key /etc/ssl/private/your_key.key;

    location / {
        proxy_pass http://localhost:8080;
        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-Proto $scheme;

        # WebSocket 支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

在上述配置中,我们使用了www.ipipp.com作为访问域名。配置完成后,通过nginx -t测试并nginx -s reload重载配置即可。

六、测试验证

服务部署完成后,在浏览器中访问您的域名或http://服务器IP:8080,如果看到OnlyOffice的默认欢迎页面,说明Document Server已成功运行。

为了进一步验证编辑器是否能正常加载文档,可以编写一个简单的HTML测试页面:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>OnlyOffice Test</title>
    <script type="text/javascript" src="https://www.ipipp.com/web-apps/apps/api/documents/api.js"></script>
</head>
<body>
    <div id="placeholder" style="width: 100%; height: 600px;"></div>
    <script>
        new DocsAPI.DocEditor("placeholder", {
            "document": {
                "fileType": "docx",
                "key": "testkey123456",
                "title": "Test Document.docx",
                "url": "https://www.ipipp.com/sample.docx"
            },
            "documentType": "word",
            "editorConfig": {
                "callbackUrl": "https://www.ipipp.com/callback"
            }
        });
    </script>
</body>
</html>

请注意,测试页面中的url必须是一个可直接访问的有效文档链接,callbackUrl为您后端处理文档保存的回调地址。如果一切配置正确,页面将加载出OnlyOffice的编辑器界面。

七、总结

通过Docker Compose部署OnlyOffice不仅极大地简化了安装流程,还使得后续的维护与升级变得可控。在实际生产环境中,请务必关注JWT密钥的保密性、数据卷的定期备份以及SSL证书的有效期。掌握这些配置原理后,您就可以轻松将OnlyOffice集成到您现有的业务系统中,打造专属的在线协作办公平台。

Docker ComposeOnlyOffice部署Nginx反向代理JWT认证数据持久化

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。