Несколько экземпляров Redmine в Docker - PullRequest
0 голосов
/ 29 января 2019

Я пытался разместить несколько экземпляров Redmine на двух отдельных поддоменах, например, redmine.domain-a.com и redmine.domain-b.com .Мне нужно, чтобы у них обоих были сертификаты SSL, и я обычно использую Let's Encrypt для этого, и я нашел это.

https://github.com/glego/redmine-nginx-letsencrypt

Мне удалось установить один Redmine, но я не могу найти способ настроить второй.Либо я сталкиваюсь с конфликтами портов для nginx, либо я добавляю контейнер redmine только с разными виртуальными доменами и портами, и он запускается нормально, но затем он все еще недоступен на поддомене.Это первый раз, когда я использую Docker, и, возможно, стоит упомянуть, что мой VPS работает под управлением Debian 8.

1 Ответ

0 голосов
/ 29 января 2019

Если вы хотите запустить 2 веб-сервера (Docker-контейнера) на одной и той же машине под тем же ip-адресом и портом, вы должны добавить обратный прокси-сервер, например HAProxy , в вашу конфигурацию.Это связано с тем, что сетевое соединение всегда будет основываться на IP-адресе вашего сервера и порте (80, 443 для сети).Но запрос HTTP (s) будет содержать имя хоста.Обратный прокси-сервер, такой как HAProxy, принимает HTTP-запрос, просматривает имя хоста и перенаправляет запрос в контейнер, у которого может быть другой порт или даже другой IP-адрес (Вы можете перенаправить запрос на внутренний IP-адрес контейнера, таким образом, без сопоставления портовпотребуется).

Ваши сертификаты также будут обслуживаться балансировщиком нагрузки, который может таким образом функционировать как HTTPS-терминатор прокси .

Это будет запросflow:

                         ┌-> Container 1
Client --> ReverseProxy -|
                         └-> Container 2
  • Ваш ReverseProxy (например, HaProxy) прослушивает ваш публичный ip и порт 80/443.
  • Оба контейнера доступны только на вашем хосте и могут быть доступны через внутренний IP-адрес док-станции или отображение прототипа.
...