Nextcloud docker 安装在 Apache 反向代理后面-错误的服务器 URL

Nextcloud docker 安装在 Apache 反向代理后面-错误的服务器 URL

我按照此处的说明设置了全新的 nextcloud 安装:https://hub.docker.com/_/nextcloud/,使用“使用 docker-compose 运行此映像”>“基本版本 - FPM”变体。

这导致三个 Docker 容器正在运行:

IMAGE               COMMAND                  CREATED             STATUS              PORTS                  
nextcloud:fpm       "/entrypoint.sh php-…"   22 hours ago        Up 22 hours         9000/tcp               
mariadb             "docker-entrypoint.s…"   22 hours ago        Up 22 hours         3306/tcp               
nginx               "nginx -g 'daemon of…"   22 hours ago        Up 9 minutes        0.0.0.0:8080->80/tcp   

到目前为止一切都很好。

但是有一个现有的 apache 安装,需要用于传入的 Web 流量。在新的 vhost 中,我设置了以下代理指令,以将适当的请求重定向到 nginx docker:

ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/

RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]

RewriteRule ^/ - [QSA,L]

现在,安装似乎可以通过 Web 界面顺利进行。

但是 a) 有警告说反向代理标头配置不正确。我不确定这是否是一个严重的问题,因为它说如果有值得信赖的代理,那就没问题,但我不确定(消息是德语的)。

b) 服务器 URL 不正确。移动设备似乎需要这个才能连接。它报告的是内部 nginx URL,http://127.0.0.1:8080/而不是公共名称https://cloud.somedomain.com

这是合乎逻辑的,因为 nextcloud/docker 进程对 apache 和外部名称一无所知,但我不知道在哪里指定它。

我试过这个https://github.com/nextcloud/docker/pull/527#issuecomment-434492082,但没有效果。

我读过有关环境变量的信息DEFAULT_HOSTVIRTUAL_HOST这里https://github.com/jwilder/nginx-proxyNEXTCLOUD_TRUSTED_DOMAINS这里https://hub.docker.com/_/nextcloud/,但我不确定如何应用它们以及这是否是正确的方法。

答案1

在我发布这个问题之后,我就找到了解决方案......-.-

需要在 nextcloud docker 中的文件中添加以下参数/var/www/html/config/config.php,以设置正确的 url:

'overwritehost' => 'cloud.somedomain.com',
'overwriteprotocol' => 'https',

描述如下:https://docs.nextcloud.com/server/16/admin_manual/configuration_server/reverse_proxy_configuration.html#overwrite-parameters

根据描述,这可能能够被自动检测到。但显然,它对我来说不起作用。

现在,服务器 URL 在管理 Web UI 中正确报告,并且移动设备登录正常!

相关内容