Итак, я пытаюсь запустить экземпляр OwnCloud через образ докера за обратным прокси-сервером nginx https, и мне нужно переписать путь через обратный прокси, чтобы вместо перехода к https: // мой-сервер / чтобы попасть в OwnCloud, вы используете https: // мой-сервер / облако чтобы добраться до него.
Мой текущий блок расположения обратного прокси-сервера выглядит так:
location /cloud {
rewrite /cloud/(.*) /$1 break;
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
}
Но это работает только наполовину. Когда я перехожу к htts: // my-server / cloud, я получаю ошибку 404, созданную OwnCloud, а затем, если я нажимаю «вернуть меня в OwnCloud», он перенаправляет меня на https: //my-server/index.php что приводит к уровню 404 nginx, потому что перенаправление должно идти на https: //my-server/cloud/index.php.
Я думаю, что мне может понадобиться изменить конфигурации OwnCloud, чтобы он возвращал ссылки с добавленным / cloud, но я понятия не имею, как это сделать с помощью образа докера. Ценю любую помощь в этом.
Я бы, наверное, сделал что-то вроде этого:
location /cloud/ {
proxy_pass http://localhost:8080/;
}
Обратите внимание на косую черту в конце / в конце расположение и proxy_pass директивы [1]. Это похоже на то, как работает rsync, например, если существует завершающая косая черта, она заменит все, что находится после. В твоем случае: http://proxy/cloud
запросит у апстрима http://upstream:8080/
и любой подкаталог OwnCloud, который использует, например, пример, будет запрошен как: http://proxy/cloud/example
и запрошен как http://upstream:8080/example
Вам не понадобится переписать если вы перехватываете каталог / cloud перед прокси-сервером.
И удалите другие настройки, поскольку они не нужны для того, что вы хотите, если вы не используете заголовок для чего-то, я не думаю, что перенаправление имеет значение в вашем случае.
[1] Источник: https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/