Предположим, у меня есть сервер, на котором работает несколько веб-сайтов Dockerized. Я понимаю, что могу настроить обратный прокси-сервер (например, Nginx или Apache) для проверки заголовков входящих HTTP-запросов и отправки их на разные локальные порты, если я запускаю каждый Dockerized веб-сайт на другом номере локального порта - таким образом, несколько [меньших] веб-сайтов размещаются на одном хосте.
Тем не менее, конфигурация этого механизма кажется довольно ручной — я должен отслеживать номера портов и следить за тем, чтобы экземпляры докеров работали правильно.
Мне приходит в голову, что отличным [теоретическим] решением было бы то, что Phusion Passenger делает для веб-приложений, например, основанных на Ruby on Rails.
Пассажир, насколько я понимаю, видит входящий запрос, проверяет, запущено ли это приложение, и если да, отправляет запрос этому приложению, а если оно не запущено, запускает экземпляр. (Он также позволяет настраиваемо закрывать сайты, которые не использовались какое-то время.) Он управляет транспортом между Nginx/Apache и серверами приложений, поэтому вручную отслеживать номера портов не приходится.
Итак, мой вопрос: есть ли решение, которое делает то, что делает Phusion Passenger, но для нескольких веб-приложений Dockerized, т.е. запускает/останавливает их автоматически и управляет соединениями от имени хоста до соответствующего экземпляра докера, не требуя ручного отслеживания номеров портов?
Или... я подхожу к этой проблеме совершенно неправильно, и есть ли гораздо лучший вариант запуска нескольких докеризированных веб-сайтов на одном хосте?
Большое спасибо за любой вклад.