marvinpinto.docker-nginx

docker-nginx

Status budowy

Rola Ansible do zarządzania i uruchamiania kontenera docker z nginx.

Wymagania

Ta rola była testowana tylko na systemie Ubuntu 14.04. Ponieważ korzysta z modułu docker Ansible, upewnij się, że masz zainstalowane aktualne wersje docker-py i docker.

Używamy tests/requirements.yml do zainstalowania zależności: geerlingguy.docker

Możesz również użyć ansible-galaxy install -r tests/requirements.yml lub lepiej dodać ten sam zawartość do własnego pliku requirements.yml w swoim repozytorium.

Przykłady

Zainstaluj tę rolę z Ansible Galaxy do katalogu './roles':

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

Użyj jej w playbooku w następujący sposób, zakładając, że masz już zainstalowany docker:

- hosts: 'serwery'
  roles:
    - role: geerlingguy.docker  # Możesz użyć dowolnej innej roli do zainstalowania dockera, ale docker jest wymagany (patrz powyżej)
    - 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;
        }

Sprawdź defaults/main.yml w celu poznania zmiennych roli, które można nadpisać! Jeśli potrzebujesz playbooka do ustawienia samego Dockera, zerknij na rolę marvinpinto.docker w Galaxy.

Oczekiwane do skonfigurowania

  • nginx_reverse_proxy_proxies: lista konfiguracji proxy odwrotnego; każda konfiguracja potrzebuje następujących zmiennych
    • nginx_reverse_proxy_backend_name: napis, który nginx używa do odwołania się do backendu
    • nginx_reverse_proxy_domains: lista domen dostępnych publicznie, które mają być proxowane
    • nginx_reverse_proxy_backends: lista serwerów backendowych, w tym porty i inne prawidłowe parametry dla server w kontekście upstream w pliku konfiguracyjnym nginx
    • nginx_reverse_proxy_config_name: nazwa do użycia dla pliku proxy (nie dodawaj rozszerzenia '.conf', rola doda to automatycznie)

Przykład Playbooka

---
# plik 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/   # W przypadku, gdy Twoja witryna jest hostowana na backend-name/path/
    root_redirect_location: /path/  # W przypadku, gdy Twoja witryna jest hostowana na backend-name/path/ i potrzebujesz domyślnego przekierowania na tę stronę

  - config_name: app2proxy
    backend_name: my-backend-2
    backends:
      - localhost:1882
      - localhost:1883 backup  # będzie działać jako zapasowy, a nginx przesyła ruch tylko wtedy, gdy główny jest niedostępny.
    domains:
      - app2.192.168.88.10.xip.io
    balancer_config: least_conn; # Ważne, aby dodać średnik na końcu ; jeśli nie, konfiguracja się zepsuje

Licencja

MIT

Informacje o autorze

  • Marvin Pinto

Współpracownicy

  • Pablo Estigarribia (pablodav at gmail)

Więcej dokumentacji

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

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

Uwagi dotyczące ustawień nginx

Dodając backendy, jeśli wolisz je dodawać za pomocą DNS, upewnij się, że serwer może rozwiązać nazwę DNS przed uruchomieniem nginx. Jeśli nginx nie rozwiąże nazwy DNS, nie uruchomi się.

Deweloperzy

Pomoc w autotestach tej roli: https://github.com/CoffeeITWorks/ansible-generic-help/blob/master/Developers.md

O projekcie

Ansible role to manage and run the nginx docker container.

Zainstaluj
ansible-galaxy install marvinpinto.docker-nginx
Licencja
mit
Pobrania
375
Właściciel
Computer nerd.