Nginx reverse proxy для docker контейнеров

Для размещения нескольких докер контейнеров на одной машине которые будут доступны на 80 порту (т.е для веба) нам необходимо воспользоваться каким-то обратным прокси, который будет в зависимости от запроса возвращать ответы с различных контейнеров.

Удобнее всего воспользоваться контейнером jwilder/nginx-proxy:

docker run -d -p 80:80 \
    -e DEFAULT_HOST=sassoft.ru \
    --name entry-nginx \
    -v /etc/nginx/vhost.d \
    -v /usr/share/nginx/html \
    -v /var/run/docker.sock:/tmp/docker.sock:ro \
    jwilder/nginx-proxy

Что делает данный контейнер?

Слушает докер сокет и просматривает какие контейнеры уже запущены на машине. Для того, чтобы прописать правила куда перенаправлять трафик достаточно ваш контейнер запускать с переменной:

-e VIRTUAL_HOST=subdomain.sassoft.ru

Тем самым при запуске контейнера nginx-proxy автоматически добавит правило перенаправлять запросы которые идут с subdomain.sassoft.ru на наш контейнер.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *