docker-nginx

docker-nginx

Статус сборки

Роль Ansible для управления и запуска контейнера nginx в Docker.

Требования

Эта роль протестирована только на Ubuntu 14.04. Поскольку используется модуль docker от Ansible, убедитесь, что установлены более-менее свежие версии docker-py и docker.

Мы используем tests/requirements.yml для установки зависимой роли: geerlingguy.docker

Вы также можете использовать ansible-galaxy install -r tests/requirements.yml или лучше добавить тот же контент в ваш собственный файл requirements.yml в вашем репозитории.

Примеры

Установите этот модуль из Ansible Galaxy в директорию './roles':

ansible-galaxy install marvinpinto.docker-nginx -p ./roles

Используйте его в плейбуке следующим образом, предполагая, что у вас уже настроен Docker:

- hosts: 'servers'
  roles:
    - role: geerlingguy.docker  # Вы можете использовать любую другую роль для установки docker, но docker является обязательным (см. выше)
    - role: 'marvinpinto.docker-nginx'
      become: yes
      nginx_conf: |
        user root;
        worker_processes 1;

        error_log /var/log/nginx/error.log warn;
        pid /var/run/nginx.pid;

        events {
            worker_connections  1024;
        }

        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
            log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" "$http_x_forwarded_for"';
            access_log  /var/log/nginx/access.log  main;
            sendfile        on;
            keepalive_timeout  65;
            include /etc/nginx/conf.d/*.conf;
        }

Посмотрите на defaults/main.yml для переменных роли, которые можно переопределить! Если вам нужен плейбук для настройки самого Docker, посмотрите на marvinpinto.docker Galaxy роль.

Ожидается, что будет настроено

  • nginx_reverse_proxy_proxies: список конфигураций обратного прокси; каждая конфигурация требует следующих переменных:

Пример плейбука

---
# файл group_vars/nginx_docker_proxy

nginx_reverse_proxy_proxies:
  - config_name: app1proxy
    backend_name: my-backend-1
    backends:
      - localhost:1880 weight=2
      - localhost:1881
    domains:
      - app1.192.168.88.10.xip.io
    locations:
      - /path/   # Если ваш сайт размещен на backend-name/path/
    root_redirect_location: /path/  # Если ваш сайт размещен на backend-name/path/ и нужно перенаправить на этот сайт по умолчанию

  - config_name: app2proxy
    backend_name: my-backend-2
    backends:
      - localhost:1882
      - localhost:1883 backup  # будет действовать как резервный, и nginx будет передавать трафик только когда основной недоступен.
    domains:
      - app2.192.168.88.10.xip.io
    balancer_config: least_conn; # Важно добавить точку с запятой в конце ; если нет, конфигурация не будет работать

Лицензия

MIT

Информация об авторе

  • Марвин Пинто

Сотрудники

Дополнительная документация

https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#taxing-rewrites

http://nginx.org/en/docs/http/ngx_http_upstream_module.html

Замечания о настройках nginx

При добавлении бэкэндов, если вы предпочитаете добавлять их с помощью DNS, убедитесь, что сервер может разрешить DNS-имя перед запуском nginx. Если nginx не может разрешить DNS-имя, он не запустится.

Разработчики

Помогите в автотестировании этой роли: https://github.com/CoffeeITWorks/ansible-generic-help/blob/master/Developers.md

О проекте

Ansible role to manage and run the nginx docker container.

Установить
ansible-galaxy install marvinpinto/ansible-role-docker-nginx
Лицензия
mit
Загрузки
360
Владелец
Computer nerd.