marvinpinto.docker-nginx

docker-nginx

Build Status

Ansible-Rolle zur Verwaltung und Ausführung des nginx-Docker-Containers.

Anforderungen

Diese Rolle wurde nur auf Ubuntu 14.04 getestet. Da sie das Docker-Modul von Ansible verwendet, müssen Sie sicherstellen, dass eine aktuelle Version von docker-py und docker installiert ist.

Wir verwenden tests/requirements.yml, um die Abhängigkeitsrolle: geerlingguy.docker zu installieren.

Sie können auch ansible-galaxy install -r tests/requirements.yml verwenden oder besser denselben Inhalt in Ihre eigene requirements.yml-Datei in Ihrem eigenen Repository einfügen.

Beispiele

Installieren Sie dieses Modul von Ansible Galaxy in das Verzeichnis './roles':

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

Verwenden Sie es in einem Playbook wie folgt, vorausgesetzt, Sie haben Docker bereits eingerichtet:

- hosts: 'servers'
  roles:
    - role: geerlingguy.docker  # Sie können jede andere Rolle verwenden, um Docker zu installieren, aber Docker ist eine Voraussetzung (siehe oben)
    - 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;
        }

Sehen Sie sich die defaults/main.yml für Rollenvariablen an, die überschrieben werden können! Wenn Sie ein Playbook benötigen, um Docker selbst einzurichten, schauen Sie sich die Galaxy-Rolle marvinpinto.docker an.

Zu konfigurierende Optionen

  • nginx_reverse_proxy_proxies: Liste der Reverse-Proxy-Konfigurationen; jede Konfiguration benötigt die folgenden Variablen
    • nginx_reverse_proxy_backend_name: Zeichenkette, die der nginx-Konfiguration verwendet wird, um auf den Backend zu verweisen
    • nginx_reverse_proxy_domains: Liste der öffentlich zugänglichen Domains, die weitergeleitet werden sollen
    • nginx_reverse_proxy_backends: Liste der Backend-Server, einschließlich Ports und anderer gültiger Parameter für server im upstream-Kontext einer nginx-Konfigurationsdatei
    • nginx_reverse_proxy_config_name: Name, der für die Proxy-Datei verwendet werden soll (keine '.conf'-Erweiterung hinzufügen, die Rolle wird dies hinzufügen)

Beispiel-Playbook

---
# Datei 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/   # Falls Ihre Seite auf backend-name/path/ gehostet wird
    root_redirect_location: /path/  # Falls Ihre Seite auf backend-name/path/ gehostet wird und standardmäßig auf diese Seite umgeleitet werden muss

  - config_name: app2proxy
    backend_name: my-backend-2
    backends:
      - localhost:1882
      - localhost:1883 backup  # wird als Backup fungieren, und nginx leitet den Verkehr nur weiter, wenn der primäre nicht verfügbar ist.
    domains:
      - app2.192.168.88.10.xip.io
    balancer_config: least_conn; # Wichtig, Semikolon am Ende hinzufügen; andernfalls bricht die Konfiguration

Lizenz

MIT

Autoreninformationen

  • Marvin Pinto

Mitarbeiter

  • Pablo Estigarribia (pablodav at gmail)

Weitere Dokumentation

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

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

Hinweise zu nginx-Einstellungen

Wenn Sie Backends hinzufügen, stellen Sie sicher, dass der Server den DNS-Namen auflösen kann, bevor Sie nginx starten. Wenn nginx den DNS-Namen nicht auflöst, wird es nicht gestartet.

Entwickler

Hilfe bei der automatischen Prüfung dieser Rolle: https://github.com/CoffeeITWorks/ansible-generic-help/blob/master/Developers.md

Über das Projekt

Ansible role to manage and run the nginx docker container.

Installieren
ansible-galaxy install marvinpinto.docker-nginx
Lizenz
mit
Downloads
375
Besitzer
Computer nerd.