前言
之前成功用使用docker运行了onlyoffice,那么肯定就是要将其与现有的系统进行连接与协作。反正我是打算将其与我自己的网盘给相互连接(可道云,nextcloud),这样子就可以在个人网盘里头编辑文档了
注:我的网盘是有域名,开启了ssl的,要求使用HTTPS访问
启用ssl
注意一下,ONLY Office docker版本假如创建的时候没有带了启用ssl的命令,那么容器的443端口是不会开放的。如何启用ssl,网上我看别人提供了许多种方法,比如说将证书文件安置在某个目录之下,然后再次启动onlyoffice等等,但是我尝试了,没有成功,最终我是通过onlyoffice自带的certbot重新生成了一个证书才OK的。(我在启动的时候域名已经指向好了。所以才能申请的证书)
如何让onlyoffic申请证书?
就是在创建docker时加个命令参数,如下
sudo docker run -i -t -d -p 80:80 -p 443:443 --restart=always \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-ee
反向代理(宝塔面板)
接下来就是反向代理(因为没那莫多公网ip),onlyoffice官方给了好几种代理方式,如前面https,后方http,前面http,后面http等等,但是onlyoffice的官方文档给的直接就是后方网页程式的配置文件,而我先是尝试将其导入到docker版本的onlyoffice容器中,果然不出我所料的失败了。
失败了以后接下来便是用宝塔面板自带的反向代理尝试https反向代理http。本来兴致匆匆的成功打开了首页,完美。没有问题。后来就是尝试打开文档并进行编辑,结果。。。什么都加载不出来。最后通过火狐的开发者工具查看了一下,在一堆https请求中夹杂着一个http请求,而就是这个请求,导致了onlyoffice加载失败。(大部分浏览器在https王爷下会禁止脚本从http加载)
接下来便是换一种方法。尝试使用301或302重定向来将http强行跳转到https上面。可是。。。。不能说毫无效果,只能说基本没用。
最后发现的唯一的法子就是,一定要在创建onlyoffice的时候启用https功能。http请求是写在其脚本之中的。
关于CDN
onlyoffice的文档加载阶段是使用了web socket技术。而有很多的cdn并不支持这一个技术,所以说加入要使用cdn代理onlyoffice,一定要记得检查你用的cdn是否支持web socket技术,免得到时候白忙活一场。
已知:阿里云整站加速,cloudflare支持websocket
结语
经过了一段时间的使用,我发现,在内网环境下onlyoffice运行的十分流畅(主要还是没什么带宽限制),而在公网远程访问的情况之下,onlyoffice就会表现的特别特别的慢。。。时常会打开失败。而且消耗流量比较多,下图附一下我的cdn的消耗截图。我就只开了3到4个文档,按流量计费的小伙伴们得注意一下
所以说到底是用本地的office还是云端协同的office,还得看个人以及使用需求