NGINX Unit 1.3: Engere Integration mit Ansible

Eine Reihe von Verbesserungen sollen NGINX Unit noch leichter konfigurierbar machen, ohne laufende Services unterbrechen zu müssen.

In Pocket speichern vorlesen Druckansicht
NGINX Unit 1.2: Mehr Konfigurationsmöglichkeiten

(Bild: nginx.com)

Lesezeit: 2 Min.
Von
  • Matthias Parbel

Der auf Microservices zugeschnittene Web- und Applikationsserver NGINX Unit ist in der neuen Version 1.3 erschienen. Neben der erweiterten Integration mit Ansible haben sich die Entwickler bei den übrigen Neuerungen darauf konzentriert, NGINX Unit noch leichter konfigurierbar zu machen. Dabei gilt wie in den Vorversionen das Versprechen, dass sich alle Parameter dynamisch konfigurieren lassen, ohne laufende Services zu stören oder gar Verbindungsabbrüche zu riskieren.

In der Konfigurations-API steht unter anderem das neue Objekt settings zur Verfügung, dass Entwicklern erweiterte globale Einstellungsoptionen für verschiedene Anwendungsszenarien und Applikationen bietet. Im ersten Schritt werden vor allem Konfigurationsoptionen für HTTP-Verbindungen parat gestellt.

Für spezielle Fälle, in denen Anwendungen von Anpassungen der HTTP-Timeouts profitieren können, bietet NGINX Unit 1.3 vier neue Optionen: header_read_timeout, body_read_timeout, send_timeout und idle_timeout. Die Standardwerte betragen in allen Fällen 30 Sekunden – nur bei idle_timeout sind es 180 Sekunden. Mit header_read_timeout lässt sich die maximale Wartezeit festlegen, bis Unit alle Request Headers von einem Client empfangen hat – bevor dann der HTTP-Fehler 408 "Request Timeout" ausgegeben wird. body_read_timeout und send_timeout beziehen sich auf die Wartezeit zwischen zwei aufeinanderfolgenden read()- beziehungsweise send()-Operationen. Mittels idle_timeout lässt sich die maximale Wartezeit zwischen HTTP-Requests in einer keepalive-Verbindung festlegen.

Die Zusammenarbeit mit Ansible soll die neue NGINX-Ansible-Rolle verbessern, die das Installieren von Unit samt der benötigten Packages einfacher macht. Das nachfolgende Beispiel zeigt exemplarisch, wie sich eine setup-unit.yml-Playbookdatei erstellen lässt, mit der die Ansible-Galaxy-NGINX-Rolle auf Localhost deployt werden kann, um Unit und Perl/PHP-Packages zu installieren:

    ---
- hosts: localhost
become: true
roles:
- role: nginxinc.nginx
vars:
nginx_enable: false
unit_enable: true
unit_modules:
- unit-php
- unit-perl

Weitere Beispiele finden sich im NGINX-Ansible-Rollen-Repository auf GitHub. Einen detaillierten Überblick aller Änderungen in NGINX Unit 1.3 bietet der Change Log. Das komplette Projekt ist darüber hinaus auf GitHub zu finden. (map)