Сделать перенаправление на 80-ый порт внутри докер контейнеров, если их больше одного.Перенапр...

Социальная сеть
Данное сообщество не является официальным и не преследует ни каких целей. Владелец сайта оставляет за собой право удалять сообщения по своему усмотрению. Рекламные темы и сообщения только с согласия администратора.

Вход Регистрация
Быстрый вход / регистрация, через социальную сеть
Регистрируясь на сайте, Вы безоговорочно принимаете условия политики конфеденциальности и обработки персональных данных

Михаил Базаров

Дата последнего входа: вчера в 19:24
Дата регистрации: 7 Февраля 2012 21:17
День рождения: 7 ноября
Пол: Мужской
Михаил Базаров -> Всем
4 января 21:25
Сделать перенаправление на 80-ый порт внутри докер контейнеров, если их больше одного.
Перенаправление доменов на IP контейнера на порт 80 каждого

Если у вас два (или больше) докер контейнера, к которым нужен доступ на 80-ый порт извне.
Можно разрулить на хост машине, с помощью
HAProxy и nginx

Исходные данные:
- Хост машина с Docker-ом- Ubuntu 18
- Внутри запущено два контейнера с битрикс веб окружением.
- Нужно, в зависимости от запрошенного адреса (домена), направить на 80-ый порт соотвествующего контейнера
- Контейнер 1: сделан форватинг порта хост машины 9380 на порт 80 контейнера (домен site1.ru)
- Контейнер 2: сделан форватинг порта хост машины 9480 на порт 80 контейнера (домен site2.ru)

На хост машину ставим HAProxy
# apt-get update
# apt-get -y install haproxy

На хост машину ставим nginx
# apt-get -y install nginx

В конфиг виртуального хоста nginx добавляем
# первый контейнер
server {
    listen 80;
    server_name site1.ru;
        location / {
             proxy_set_header HOST $host;
             proxy_set_header X-Forwarded-Proto $scheme;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_pass http://0.0.0.0:9380/;
        }
}

# второй контейнер
server {
    listen 80;
    server_name site2.ru;
        location / {
             proxy_set_header HOST $host;
             proxy_set_header X-Forwarded-Proto $scheme;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_pass http://0.0.0.0:9480/;
        }
}

Перезапускаем nginx
     

/etc/init.d/nginx restart


PS: Можно для каждого сайта сделать свой конфиг- что бы было аккуратнее
nano /etc/nginx/sites-enabled/site1.ru


Михаил Базаров
Еще аккуратнее.
Сделать докер контейнер с nginx, дабы ни чего не ставить на хост машину (кроме докера естессно)