inhumantsar.dockerautoproxy
dockerautoproxy
Что это?
Использует jwilder/nginx-proxy Docker образ для автоматизации настройки обратного прокси в Docker Swarm.
Как это работает?
Использование ролей
Сам образ предназначен для динамической настройки, поэтому заранее ничего особенного делать не нужно. См. defaults/main.yml.
По умолчанию используется образ alpine, измените nginx_version на latest, чтобы использовать образ debian:jesse.
Создает сеть с названием nginx_proxy_net, к которой должны подключаться ваши проксируемые контейнеры.
Использование Nginx Proxy
Контейнеры, которые требуют проксирования, должны сделать две вещи: открыть порт для проксирования и указать виртуальный хост.
Порты можно указать в Dockerfile с помощью EXPOSE, в командной строке с помощью --expose или в файле Docker Compose с помощью expose.
Виртуальные хосты должны быть указаны в переменной окружения VIRTUAL_HOST.
Расширенное использование
Настройки nginx
Можно загрузить, смонтировав путь на хосте с файлами конфигурации nginx, используя переменную dockerautoproxy_config_path. Путь будет создан, если его еще нет на хосте.
SSL сертификаты
SSL сертификаты могут быть сгенерированы автоматически или указаны вручную. По умолчанию они хранятся в общем объеме данных между контейнерами. Вы можете использовать dockerautoproxy_certs_path, чтобы смонтировать путь на хосте для их хранения.
Чтобы автоматически генерировать сертификаты, установите переменную Ansible dockerautoproxy_ssl_companion в true. Это запустит второй контейнер, который будет заниматься генерацией SSL сертификатов с помощью Let's Encrypt. Чтобы активировать сервис для этого, установите переменные окружения контейнера LETSENCRYPT_HOST и LETSENCRYPT_EMAIL. Например:
$ docker run -d \
--name example-app \
-e "VIRTUAL_HOST=example.com,www.example.com,mail.example.com" \
-e "LETSENCRYPT_HOST=example.com,www.example.com,mail.example.com" \
-e "[email protected]" \
tutum/apache-php
Sets up a dynamic Nginx reverse proxy on Docker Swarm
ansible-galaxy install inhumantsar.dockerautoproxy