错误提示
无法复现,类似下面的错误
提示downlaod然后点击ok,打不开文档,也不告知具体错误,点击确认后回退到nextcloud页面
也就是nextcloud的onlyoffice设置配置正确,可以正常连接,也可以右键打开文档,excel,ppt等选项
但是真正新建onlyoffice文档的时候,就弹框报错

本文错误的原因排查为,不允许在https内使用http的请求
打开前端控制台,可以发现onlyoffice无论你如何配置正确,它总是在nextcloud中发起http的onlyoffice请求
本文使用docker部署的nextcloud和docker部署的onlyoffice,github上的issues也提到了类似的问题,但是始终没有人愿意去解决
解决方案
既然是https请求http的造成的,那么就通过别的技术方式,变相的解决http请求的问题
可以使用nginx配置,设置http请求自动强转https,这样,无论原来的应用如何,只要经过网络层,就会自动变为https,那么因为http造成的问题也就自然解决了
nginx
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
或者
# 检查 X-Forwarded-Proto 请求头并进行重定向
if ($http_x_forwarded_proto = "http") {
return 301 https://$host$request_uri;
}
其他的方法请自行查阅
设置配置
参考链接 https://github.com/ONLYOFFICE/onlyoffice-nextcloud/issues/619
进入docker容器
docker exec -it 72ac02df8 bash

编辑配置文件
nano /etc/onlyoffice/documentserver/default.json
设置requestDefaults下的rejectUnauthorized值为false

Tips
今天需要用到表格excel
想起来之前遇到本地http local onlyoffice没有问题,但是https域名就有问题,排查和解决问题花了一整天
特此记录下来,免得下次遇到又忘记了
