onlyoffice分布式部署报错问题解决及文件缓存知识
2018-07-04 本文已影响41119人
小赖快跑
onlyoffice分布式部署报错问题解决
编辑历史:
2018.7.3 小赖 文档初始化
问题描述:客户要求部署分布式环境,启动两个onlyoffice服务,请求随机转发到其中一台服务器上;发现时有时无的错误,office文件打开失败。
思路:1.配置的config文件后,onlyoffice服务会自行加载一些文件;2.产生的原因是请求让服务器A去下载a.docx文件,下载完后存储在/var/lib/onlyoffice的cache目录下,并把下载的结果发给前端,这时前端拿到a.docx文件的下载信息了,请求服务器B将下载好的文件以bin的形式传给前端,但是服务器B上并没有这个文件,导致请求报错,文件加载不出来。
解决方案:将两个容器中的/var/lib/onlyoffice目录挂载到一个目录下,保证文件的一致性。—— 1.使用docker启动并且两个服务在一台服务器上,可以使用docker的-v命令将容器中的 /var/lib/onlyoffice 目录映射到服务器的同一个目录下即可解决。 2.使用两台linux服务器启动的服务,使用nfs工具同步两个onlyoffice服务上的 /var/lib/onlyoffice 目录。
注意:
- /var/lib/onlyoffice存储下载的office文件;
- 下载的office文件会转化成onlyoffice自行设置的格式;
- /var/lib/onlyoffice目录下的文件虽然是缓存,但是不会自动清理,可以使用linux定时任务,定时删除缓存文件;
- /var/lib/onlyoffice目录的权限是755,所属用户是onlyoffice;如果任何操作更改了所属用户,就会导致缓存文件写入失败而报错。——解决方案:
chmod -R 777 /var/lib/onlyoffice
或者
chown -R onlyoffice:onlyoffice /var/lib/onlyoffice