Подтвердить что ты не робот

Трафик маршрута на контейнер докера на основе субдомена

У меня есть подстановочный dns, указывающий на мой сервер, например. *.domain.com

Я хотел бы направить каждый поддомен на собственный контейнер докеров. Так что box1.domain.com переходит в соответствующий контейнер докеров. Это должно работать для любого трафика, в основном HTTP и SSH.

Или, может быть, порт может быть частью субдомена, например. 80.box1.domain.com. У меня будет много контейнеров-докеров, поэтому решение должно быть динамическим, а не жестко-кодированным для каждого контейнера.

4b9b3361

Ответ 1

Я отправился с interlock для маршрутизации http-трафика с помощью nginx плагин. Я решил использовать случайный порт для каждого SSH-соединения, поскольку я не мог заставить его работать, используя только один поддомен.

Ответ 2

Другим решением было бы использовать https://github.com/jwilder/nginx-proxy.

Этот инструмент автоматически перенаправляет запросы в соответствующий контейнер (на основе субдомена через переменную среды контейнера VIRTUAL_HOST).

Например, если вы хотите перенаправить box1.domain.com в контейнер, просто установите для переменной контейнера VIRTUAL_HOST значение " box1.domain.com".

Вот подробный учебник, который я написал об этом: http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker.

Ответ 3

мой ответ может появиться допоздна, но когда вы используете докер, вам не нужен ssh для подключения к вашим контейнерам. с помощью команды docker exec вы можете запустить команду оболочки непосредственно в вашем запущенном контейнере.

вот мой совет, используйте контейнер nginx proxy, указанный в начале для настройки поддоменов. и запустите portainer на своем хосте, чтобы получить визуальный обзор ваших контейнеров, изображений, журналов и даже выполнить команду во всех это через portainer gui.

Ответ 4

Самое простое решение - использовать метод Apache mod_rewrite RewriteMap. Он очень эффективен при использовании в текстовом файле, но при желании может вызвать script. Существует fooobar.com/info/413121/..., который хорошо описывает вариант script.

Если вы хотите избежать Apache, добрые люди в dotCloud создали Hipache для маршрутизации своих услуг PaaS. Они даже документировали разные вещи, которые они пытались, прежде чем создавать собственное решение. Я нашел ссылку на tsuru.io, использующую hipache именно для маршрутизации в контейнеры докеров, чтобы определенно проверить его для этой цели.