OnlyOffice+NextCloud打开文档错误解决

错误提示

无法复现,类似下面的错误

提示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域名就有问题,排查和解决问题花了一整天

特此记录下来,免得下次遇到又忘记了