Это было решено, позволив обратному прокси-серверу разорвать соединение SSL и переслать незашифрованный на сервер Nextcloud. Затем прокси может переписать URL. Nextcloud также нужно сообщить, что он находится за обратным прокси-сервером перезаписи.
Для привязки к следующему облаку вы можете использовать следующие команды (от https://github.com/nextcloud/nextcloud-snap/wiki/Putting-the-snap-behind-a-reverse-proxy#nginx-optional-custom-path-location-for-reverse-proxy):
$ nextcloud.occ config:system:set overwritehost --value="myserver.ddns.com"
$ nextcloud.occ config:system:set overwriteprotocol --value="https"
$ nextcloud.occ config:system:set overwritewebroot --value="/nextcloud"
$ nextcloud.occ config:system:set overwrite.cli.url --value="https://myserver.ddns.com/nextcloud"
или вы можете редактировать эти значения непосредственно в Nextcloud config.php
.
Ссылка выше не объясняет настройку Apache, но работает следующее:
ProxyPass "/nextcloud" "http://127.0.0.1:8000"
ProxyPassReverse "/nextcloud" "http://127.0.0.1:8000"
ProxyPass "/" "http://127.0.0.1:8001/"
ProxyPassReverse "/" "http://127.0.0.1:8001/"
где порт 8001 - веб-сервер для статических / других файлов.
По какой-то причине, которую я не понимаю, важны косые черты: если я добавлю косую черту:
ProxyPass "/nextcloud" "http://127.0.0.1:8000/"
тогда я перенаправлен, но Nextcloud не работает должным образом, и если я удаляю его из статического перенаправления:
ProxyPass "/" "http://127.0.0.1:8001"
затем myserver.ddns.com/foo
перенаправляется изнутри на http://127.0.0.1:8001foo
, что явно не работает.