Создайте контейнерный обратный прокси-сервер с несколькими сайтами на отдельном IP-адресе.

Я администрирую небольшой кластер, в котором работает несколько различных сервисов, включая мониторинг графаны в качестве контейнера, облачное хранилище файлов в качестве контейнера (nextcloud) и сервер FreeIPA на «голом железе». Я хочу разместить службу облачного хранилища за обратным прокси-сервером (https://hub.docker.com/r/jwilder/nginx-proxy), чтобы включить https, но я не могу использовать для этого порт 80, потому что он уже используется. используется сервером IPA.

Я знаю, что можно назначить контейнеру общедоступный IP-адрес (я использовал это раньше https://blog.carroarmato0.be/2020/05/08/expose-podman-container-on-the-network ). /), поэтому мне интересно, могу ли я назначить общедоступный IP-адрес обратному прокси-серверу и заставить прокси ссылаться на контейнер облачного хранилища. Но я не уверен, смогу ли я заставить обратный прокси-сервер отправлять трафик в контейнер облачного хранилища, если контейнер облачного хранилища находится за обычной мостовой сетью. Но я также не думаю, что смогу назначить один и тот же IP-адрес контейнеру облачного хранилища.

При настройке сервера IPA я чаще всего сталкивался с людьми, которые говорили, что абсурдно пытаться разместить ваш сервер LDAP на машине с другими запущенными службами, но на самом деле у меня нет других вариантов. Если бы это был основной сервер LDAP в нашей организации, это было бы правдой, но это кластер, используемый для исследований, а это означает, что использование всего выделенного сервера только для обработки входа в систему примерно для 10 пользователей было бы диковинным.

Возможно, решение состоит в том, чтобы поместить IPA-сервер в контейнер с собственным IP-адресом (что я пробовал раньше, но так и не получилось), разрешив обратному прокси-серверу использовать порт 80 на обычной машине. Или, может быть, виртуальная машина — лучшее решение.

Но мой главный вопрос: могу ли я назначить IP-адрес какой-то мостовой сети, которая позволила бы мне запускать обратный прокси-сервер и другие контейнеры на общедоступном IP-адресе отдельно от IP-адресов аппаратных сетевых карт на машине?

1 ответ

Хорошо, думаю, я нашел решение.

Оказывается, я могу разместить контейнер обратного прокси-сервера nginx на порту, отличном от порта 80, в моем случае 8894, так что любые запросы к URL-адресу контейнера облачного хранилища на порту 8894 в конечном итоге попадут в контейнер облачного хранилища. Итак, у нас есть следующая установка:

Служба FreeIPA работает на порту 80 для URL-адреса foo1.bar.com.

Обратный прокси-сервер Nginx, работающий на порту 8894

Контейнер облачного хранилища, работающий на виртуальном хосте под именем foo2.bar.com.

Итак, теперь запросы на обычном foo2.bar.com по-прежнему перенаправляются на foo1.bar.com, но запросы на foo2.bar.com:8894 перенаправляются в контейнер облачного хранилища.

Это было достигнуто путем изменения привязки порта с-p 80:80к-p 8994:80

Другие вопросы по тегам