Назад | Перейти на главную страницу

Использование обратного прокси-сервера NGINX для перезаписи пути на образе OwnCloud Docker, работающем наполовину

Итак, я пытаюсь запустить экземпляр 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/