hoall.nginx-proxy
Rolle nginx-proxy
Diese Rolle installiert nginx als Proxy-Server. Die Einstellungen sind nur für die Verwendung von HTTPS. Stellen Sie also sicher, dass Sie Ihr SSL-Zertifikat konfigurieren. Der dhparam wird durch eine neu generierte Version ersetzt. Die Generierung erfolgt während der Installation. Die Rolle setzt auch einige nützliche Voreinstellungen für Proxy-Server.
Der Sicherheitsgrad ist modern gemäß der Definition der Mozilla-Stiftung (siehe deren Generator für weitere Informationen: https://mozilla.github.io/server-side-tls/ssl-config-generator/). Die Konfiguration sollte für die meisten Systeme passen. Ich habe die Vorlagen mit Ubuntu 16.04 erstellt. HSTS ist aktiviert. Die Konfiguration erhält von ssllabs.com eine Note von A+.
Die Standard-Website ist auf / abgebildet. Ich habe diese Rolle erstellt und benutze sie, um die Verbindung zu meinem Tomcat-Server zu abstrahieren und zu sichern.
Wenn Sie Verbesserungsvorschläge haben, erstellen Sie eine Pull-Anfrage.
Anforderungen
Ein SSL-Zertifikat und OpenSSL (für den dhparam). Wenn Sie nach einer guten Rolle suchen, empfehle ich, sich die Rolle von geerlingguy.certbot anzusehen.
Rollenvariablen
HINWEIS: Variablen, die überschrieben werden müssen, sind in GROSSBUCHSTABEN geschrieben.
Name | Standardwert | Beschreibung |
---|---|---|
NP_SERVER_NAME |
KEINE | 'Ein String, der die Namen enthält, auf die der Server (und Standort) hören soll. Zum Beispiel "example.com www.example.com"' |
NP_SSL_CERTIFICATE |
KEINE | 'Der Pfad zu Ihrem SSL-Zertifikat (fullchain.pem). Zum Beispiel /etc/letsencrypt/live/example.de/fullchain.pem' |
NP_SSL_CERTIFICATE_KEY |
KEINE | 'Der Pfad zu Ihrem privaten Schlüssel des SSL-Zertifikats (privkey.pem). Zum Beispiel /etc/letsencrypt/live/example.de/privkey.pem' |
NP_PROXY_PASS |
KEINE | 'Der Pfad zum Standort. Zum Beispiel "http://127.0.0.1:8080/example/"' |
NP_REWRITE |
KEINE | 'Umleitungsregel für die Website. Zum Beispiel "^/example(.*)$ $1 last"' |
np_worker_processes |
{{ ansible_processor_count }} | 'Die Anzahl der Worker-Prozesse, die nginx verwenden soll. Der Standardwert ist einer pro Kern, bestimmt durch die Ansible-Einstellungen.' |
np_worker_connections |
1024 | 'Die Anzahl der Verbindungen für jeden Worker-Prozess (einschließlich zu Backend-Servern). Denken Sie daran, dass ein Browser mehr als eine Verbindung öffnet, um die Geschwindigkeit zu erhöhen.' |
np_keep_alive_timeout |
15 | 'Timeout für eine inaktive Client-Verbindung in Sekunden.' |
np_client_max_body_size |
10m | 'Legt die maximal erlaubte Größe des Client-Anforderungsinhalts fest, angegeben im Feld “Content-Length” im Anforderungsheader.' |
np_client_body_buffer_size |
10k | 'Legt die Puffergröße für das Lesen des Client-Anforderungsinhalts fest.' |
np_proxy_connect_timeout |
10 | 'Definiert ein Timeout für die Herstellung einer Verbindung mit einem proxied Server. Es sollte beachtet werden, dass dieses Timeout in der Regel 75 Sekunden nicht überschreiten kann.' |
np_proxy_send_timeout |
10 | 'Legt ein Timeout (in Sekunden) für die Übertragung einer Anfrage an den proxied Server fest.' |
np_proxy_read_timeout |
10 | 'Definiert ein Timeout (in Sekunden) für das Lesen einer Antwort vom proxied Server.' |
np_proxy_buffers |
"32 8k" | 'Legt die Größe des Puffers fest, der für das Lesen des ersten Teils der Antwort vom proxied Server verwendet wird. Dieser Teil enthält normalerweise einen kleinen Antwort-Header. Standardmäßig entspricht die Puffergröße einer Speicherseite. Diese ist entweder 4K oder 8K, abhängig von der Plattform. Sie kann jedoch kleiner gemacht werden.' |
Hinweis: Teile dieser Dokumentation stammen aus der offiziellen nginx-Dokumentation (https://nginx.org/en/docs/). Die Quellen und Dokumentationen werden unter der 2-Klausel BSD-ähnlichen Lizenz verbreitet.
Ändern Sie die Variablen gemäß Ihren Anforderungen.
Abhängigkeiten
Beispiel Playbook
- hosts: servers
roles:
- { role: hoall.nginx-proxy, NP_SERVER_NAME: "example.com www.example.com", NP_SSL_CERTIFICATE: /etc/letsencrypt/live/fullchain.pem, NP_SSL_CERTIFICATE_KEY: /etc/letsencrypt/live/privkey.pem }
Lizenz
BSD
Autorinformationen
Felix Paetow fhmpaetow@fsfe.org
Installation, configuration and hardening of a nginx proxy with one website.
ansible-galaxy install hoall.nginx-proxy