侧边栏壁纸
博主头像
Linux学习记录博主等级

我们因为好奇而所获得的一切,最终会因为骄傲而全然玷污

  • 累计撰写 45 篇文章
  • 累计创建 13 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

Nextcloud集成Onlyoffice实现在线查看和编辑office文件(同一台服务器)

Frank
2022-11-06 / 0 评论 / 0 点赞 / 8 阅读 / 2184 字

硬件环境

服务器在家里,有公网IP,通过DDNS和端口映射,通过域名实现访问Nextcloud。 内网:路由器做host映射服务器内网IP,内外网必须同端口。

  1. ONLYOFFICE Docs地址,这里如果设置内网,则在外面无法正常打开office;设置外网,则内网无法正常访问;

  2. Nextcloud加了SSL证书,所以onlyoffice也必须https;

  3. 最开始内外网配置的不同端口,也各种问题绕了很久。

o.jpg 简而言之

  1. Docker安装onlyoffice,docker-compose文件参考如下:

version:'3.3'

services:

documentserver:

ports:

- '10086:443'

restart: always

environment:

- JWT_SECRET=12345678

volumes:

- '/home/ubuntu/program/Onlyoffice/DocumentServer/logs:/var/log/onlyoffice'

- '/home/ubuntu/program/Onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data'

- '/home/ubuntu/program/Onlyoffice/DocumentServer/lib:/var/lib/onlyoffice'

- '/home/ubuntu/program/Onlyoffice/DocumentServer/db:/var/lib/postgresql'

image: onlyoffice/documentserver:7.1.1

附:onlyoffice官方文档,有特殊需求可参考自定义:Installing ONLYOFFICE Docs for Docker on a local server - ONLYOFFICE

2. 域名证书改名为onlyoffice.key和onlyoffice.crt(PEM格式证书直接改后缀即可),放在/home/ubuntu/program/Onlyoffice/DocumentServer/data/certs目录(证书过期会导致无法访问);

3. 路由器配置hosts映射到服务器内网IP,10086端口映射到外网;

4. 在Nextcloud的onlyoffice配置中,ONLYOFFICE Docs地址配置域名即可,比如我这里是:https://only.xxx.com:10086,关闭证书校验;

5. onlyoffice从7.2版本开始默认开启了JWT(即密钥),所以docker-compose.yml中记得加上环境变量JWT_SECRET=12345678,然后在nextcloud中配置该密钥,否则每次启动会随机生成密钥。 如果内外网通过https://only.xxx.com:10086都可用访问到onlyoffice页面,那就说明配置成功了,接下来在nextcloud中找到office文件试试,不管内网外网,就都可用在线打开office文件了。

遗憾

本来我是认为无论内网还是外网,nextcloud都是通过内网直接传输office文件给onlyoffice,然后解析之后回传nextcloud再打开呈现到前端,但是按照这种思路,一直没有配置成功(ONLYOFFICE的更多配置中关于“用于服务器内部的ONLYOFFICE Docs的地址”和“用于ONLYOFFICE Docs内部请求的服务器的地址”让我以为应该是达到这种目的而设计的)。不过目前总算是可用,我的效率最大化“强迫症”暂时就缓一缓,以后再来研究。

0

评论区