marvinpinto.docker-nginx
docker-nginx
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 Variablennginx_reverse_proxy_backend_name:
Zeichenkette, die der nginx-Konfiguration verwendet wird, um auf den Backend zu verweisennginx_reverse_proxy_domains
: Liste der öffentlich zugänglichen Domains, die weitergeleitet werden sollennginx_reverse_proxy_backends
: Liste der Backend-Server, einschließlich Ports und anderer gültiger Parameter fürserver
imupstream
-Kontext einer nginx-Konfigurationsdateinginx_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
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
Ansible role to manage and run the nginx docker container.
ansible-galaxy install marvinpinto.docker-nginx