关键词:
onlyoffice
nextcloud
Apache
反向代理
nginx
Error while downloading the document file to be converted
1. 场景:
一台服务器设备安装了很多 docker 服务,包括 nextcloud 和 onlyoffice 和 apache。nextcloud、onlyoffice 服务默认使用 10001 和 10002 端口映射到两个服务的 80 端口。直接访问是通过 80 端口访问的,没有 SSL 加密。
现在用 apache 监听服务器 IP 的 443 端口,让所有 docker 服务通过 apache 的反向代理进行访问。这样方便我一个证书对所有的服务进行加密。
2. 问题:
问题1:
nextcloud 在配置 onlyoffice 服务器地址的时候,一直报错 “Error while downloading the document file to be converted” ,并且在onlyoffice的后台日志看到报错:
[2023-07-16T09:35:07.716] [ERROR] nodeJS - error downloadFile:url=http://127.0.0.1:10001/apps/onlyoffice/empty?doc=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY3Rpb24iOiJlbXB0eSJ9.DLpf7UCdEv7YgQUp3bnn5Q4nCQuHbYj2w28RUqA06hk;attempt=3;code:ECONNREFUSED;connect:null;(id=conv_check_698669687_docx)
网上给出的方法是在 onlyoffice 的 config.php 里面加一句
'allow_local_remote_servers' => true,
但是我实际测试发现还是会有出现问题。后面我解决的方法是在 Apache 的反向代理里面将 127.0.0.1:10001 改成了我服务器的 IP 192.168.5.66:10001 解决了问题。这个问题的原因是 nextcloud 在 18 版本及以后不允许直接通过 localhost 或 127.0.0.1 进行文档访问。
ProxyPass / http://192.168.5.66:10001/
ProxyPassReverse / http://192.168.5.66:10001/
问题2:
onlyoffice 配置了反向代理之后,一直出现我输入地址 https:/onlyoffice地址 访问 onlyoffice ,但是实际会跳转到 http://onlyoffice地址。 导致 onlyoffice 服务无法正常使用。
解决方法:
我是使用 docker 安装的 onlyoffice,这个 docker 镜像里面有一个 nginx 服务对地址进行了 rewrite。将 https 重写成了 http(因为反向代理的目的地址是 http://127.0.0.1:10002)所以我就强制将地址改成了 https ,具体修改如下:
文件:/etc/nginx/includes/http-common.conf
原代码为:
map $http_x_forwarded_proto $the_scheme {
default $http_x_forwarded_proto;
"" $scheme;
}
对 $the_scheme map 修改后的代码:
map $http_x_forwarded_proto $the_scheme {
default https;
"" https;
}
我这样就强制将头改成了 https 。这样做会导致普通的 http 地址访问会被重写成 https。有了具体原因,可以根据实际情况决定是否强制改动,或者加一些逻辑判断语句。我这里因为肯定用 https 地址访问,所以就写死为 https 了。
这两个都解决之后,我所有的问题都解决了。希望我的分享对你有帮助。
补充:正确的解决方法
备注:正确的解决方法不需要改动 nextcloud docker 容器内的任何文件。在 Apache 中配置 X-Forwarded-Proto 为 "https" 。文章来源:https://www.toymoban.com/news/detail-809983.html
具体操作为在 Apache 的反向代理配置文档中加入下面这句话:文章来源地址https://www.toymoban.com/news/detail-809983.html
RequestHeader set X-Forwarded-Proto "https"
到了这里,关于Nextcloud 集成 onlyoffice 配置 apache 反向 SSL 反向代理填坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!