当前位置:首页 > 技术文章 > 正文内容

onlyoffice docker部署 配置域名访问

arlanguage3个月前 (01-31)技术文章24

onlyoffice 是一款自由的办公套件生产力软件和具有协作功能的软件套件。它具有文本文档、电子表格、演示文稿、表格和、PDF、在线编辑器以及基于房间的协作平台。在此分享一次onlyoffice部署经过

shell
复制代码# 拉取镜像
onlyoffice/documentserver:latest

编写docker-compose 配置文件

yaml
复制代码services:
  onlyoffice:
    image: onlyoffice/documentserver
    container_name: onlyoffice
    ports:
      - 8011:443
      - 8012:80
    volumes:
      - ./onlyoffice/logs:/var/log/onlyoffice 
      - ./onlyoffice/data:/var/www/onlyoffice/Data
      - ./onlyoffice/lib:/var/lib/onlyoffice
      - ./onlyoffice/db:/var/lib/postgresql
    restart: always
    environment:
      - JWT_ENABLED=false

启动容器

shell
复制代码docker-compose up -d

配置nginx域名访问

普通代理

配置好站点后添加如下反向代理

conf
复制代码location ^~ /{
    proxy_pass http://127.0.0.1:8012/; 
    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 REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_http_version 1.1; 
    add_header X-Cache $upstream_cache_status; 
    add_header Strict-Transport-Security "max-age=31536000"; 
    add_header Cache-Control no-cache; 
}

直接访问https://你的域名/welcome/即可

跨路径代理

即使用https://域名/自定义路径/访问,

修改容器中的nginx 配置文件

修改容器中的 /etc/onlyoffice/documentserver/nginx/includes/ds-docservice.conf

shell
复制代码# 第2-3行 
#script caching protection
rewrite ^(?<cache>\/web-apps\/apps\/(?!api\/).*)$ $the_scheme://$the_host$the_prefix/onlyoffice/8.0.1-31$cache redirect;


# 第69-71行
# 此处和nginx 配置的子路径保持一致
location ^~ /onlyoffice {
  proxy_pass http://docservice;
}

修改后可将容器报保存为镜像、或将配置文件映射到主机进行修改方便后续使用。

修改域名反向代理

conf
复制代码# onlyoffice 可替换为自己想要的路径
location ^~ /onlyoffice {
    proxy_pass http://127.0.0.1:8012/; 
    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 REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_http_version 1.1; 
    add_header X-Cache $upstream_cache_status; 
    add_header Strict-Transport-Security "max-age=31536000"; 
    add_header Cache-Control no-cache; 
}
# 缓存代理
location ^~ /cache/ {
    proxy_pass http://localhost:8012/cache/; 
    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 REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_http_version 1.1; 
    add_header X-Cache $upstream_cache_status; 
    add_header Strict-Transport-Security "max-age=31536000"; 
    add_header Cache-Control no-cache; 
}

验证

访问https://域名/onlyoffice/welcome/ 如图:

预览验证

html代码解读复制代码
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript" src="https://xxxx.com/onlyoffice/web-apps/apps/api/documents/api.js"></script>
    <style>
        body {
            width: 100%;
            height: 90vh;
            display: flex;
            flex-direction: column;
        }
        
        #placeholder {
            width: 100%;
            height: 100vh;
        }
    </style>
</head>

<body>
    <div id="placeholder" class="nav" style="width: 100%; height: 100vh;"></div>

</body>
<script>

    var onDocumentReady = function () {
        console.log("文档准备好了");
    };


    var config = {
        "documentType": "slide", 
        "historyList": {
            "history": [],
            "currentVersion": "1"
        },
        "document": {
            "title": "f864d53d6fe14f1d9f00fa9eb4ffa000.pptx",
            "url": "https://xxxx.com/uploads/data/20240408/f864d53d6fe14f1d9f00fa9eb4ffa000.pptx"         
            "attachId": "xxxxxxxxxx",
            "fileType": "pptx",
            // "key": "aHR0cHM6Ly9hcGkucxasadasdasd="
        },
        "editorConfig": {
            "customization": {
                "autosave": false,
                "compactToolbar": true,
                "forcesave": true,
                "toolbarNoTabs": true,
                "help": false,
                "compactHeader": true,
                "hideRightMenu": true,
            },
            "mode": "edit",
            "callbackUrl": "",
            // 回调地址
            //"callbackUrl": "https://xxxx.com/endpoint/onlyoffice/save",
            "lang": "zh-CN",
            "user": {
                "name": "tx",
                "id": "84"
            }
        }
    };


    var docEditor;
    initDocEditor();
    

    /**
     * 初始化编辑器
     */
    function initDocEditor() {
        // 初始化配置
        config['events'] = {
            onDocumentReady: onDocumentReady
        };
        docEditor = new DocsAPI.DocEditor("placeholder", config);
    }


</script>

</html>

使用浏览器打开HTML文件即可看到预览成功 如图:

如果这篇文章对你有所帮助,请帮忙点赞分享帮助到更多的人,如果你在安装过程中遇到问题,欢迎在评论区留言或私信交流。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1225.html

分享给朋友:

“onlyoffice docker部署 配置域名访问” 的相关文章

nginx 常见错误

1.启动报错报错内容:sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory32位系统 [root@sever...

PHP日志记录

背景在生产环境中日志的重要性显而易见,能快速定位问题和程序的调优。在LNMP架构中怎么记录好程序中的错误日志。设置error_log记录PHP日志信息#将会向PHP报告发生的每个错误 error_reporting = E_ALL #关闭页面显示才能将错误回写到日志文件 display_err...

Nginx安装、启动、停止、重载、查看

Nginx介绍Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在开源BSD-like 协议下发行。特点是占有内存少,并发能力强。1、安装 Nginx程序yum install nginx -y 或 dnf install nginx -y2、n...

Nginx 的日志 nginx的日志能否保存到日志审计里面?

Nginx 的日志主要有 2 个,一个是 access.log, 一个是 error.log。如果你不进行任何配置的话,这 2 个日志将会使用默认的日志配置,这个日志将会位于/var/log/nginx 目录中。针对虚拟主机的配置如果你使用了 Nginx 为虚拟主机的话。那么你可以在你的虚拟主机的配...

nginx配置静态资源服务器 nginx配置静态资源服务器的方法

nginx服务器搭建在这就不过多的说明了,本内容主要是nginx静态资源服务器配置相关说明nginx配置location / :指所有的url请求都会去访问static下面的文件;指定url后缀要与文件目录后面的后缀一一对应有两种用法:root:绝对路径;alias: nginx安装目录中的stat...

为什么一条UPDATE语句有索引反而更慢

先来看看今天要讲的主人翁:UPDATE `i_msg_system` set `deliver`=1 where `uid`=10000 and `msg_group`=0 and `deliver`=0;涉事表结构:CREATE TABLE `i_msg_system` ( `id` int(...