Release von nginx 1.16.0

Nach einem Jahr Entwicklung wurde vorgestellt neue stabile Version eines leistungsfähigen HTTP-Servers und einesmehrprotokollfähigen Proxy-Servers nginx 1.16.0, die die in der Hauptversion 1.15.x angesammelten Änderungen umfasst. Zukünftig werden alle Änderungen in der stabilen Version 1.16 mit der Behebung schwerwiegender Fehler und Sicherheitsanfälligkeiten verbunden sein. In Kürze wird die Hauptversion nginx 1.17 gebildet, in deren Rahmen die Entwicklung neuer Funktionen fortgesetzt wird. Für normale Benutzer, die keine Kompatibilität mit Drittanbieter-Modulen gewährleisten müssen, wird empfohlen sollten die Hauptversion verwenden, auf deren Basis alle drei Monate neue Versionen des kommerziellen Produkts Nginx Plus veröffentlicht werden.

Die auffälligsten Verbesserungen, die im Verlauf der Bildung der Hauptversion 1.15.x hinzugefügt wurden:

  • Die Möglichkeit, Variablen in den Direktiven ‘ssl_certificate‘ und ‘ssl_certificate_key‘ zu verwenden, was für das dynamische Laden von Zertifikaten genutzt werden kann;
  • Es wurde die Möglichkeit hinzugefügt, SSL-Zertifikate und geheime Schlüssel aus Variablen ohne Verwendung von Zwischen-Dateien zu laden;
  • Im Block «upstream» wurde die neue Direktive «random« eingeführt, mit der die Lastenverteilung durch zufällige Auswahl eines Servers zur Weiterleitung der Verbindung organisiert werden kann;
  • Im Modul ngx_stream_ssl_preread eine Variable implementiert, $ssl_preread_protocol,
    die die höchste Version des SSL/TLS-Protokolls bestimmt, die vom Client unterstützt wird. Die Variable ermöglicht es, Konfigurationen für den Zugriff mithilfe verschiedener Protokolle mit SSL und ohne SSL über einen einzigen Netzwerkport beim Proxy-Traffic mit den Modulen http und stream zu erstellen. Beispielsweise kann der Zugriff über SSH und HTTPS über einen einzigen Standardport 443 weitergeleitet werden, wobei bei definierter SSL-Version die Weiterleitung an HTTPS erfolgt.
  • Im Modul upstream wurde die neue Variable «$upstream_bytes_sent« hinzugefügt, die die Anzahl der Bytes darstellt, die an den Server der Gruppe übertragen wurden;
  • Im Modul stream Im Rahmen einer Sitzung wurde die Möglichkeit hinzugefügt, mehrere eingehende UDP-Datagramme vom Client zu verarbeiten;
  • Im Modul stream wurde die Direktive «proxy_requests« hinzugefügt, die die Anzahl der vom Client empfangenen Datagramme angibt, nach deren Erreichen die Bindung zwischen dem Client und der bestehenden UDP-Sitzung aufgehoben wird. Nach dem Empfang der angegebenen Anzahl von Datagrammen beginnt das nächste Datagramm, das vom selben Client empfangen wird, eine neue Sitzung;
  • In der Direktive listen wurde die Möglichkeit hinzugefügt, Portbereiche anzugeben;
  • Die Direktive „ssl_early_data» zur Aktivierung des Modus 0-RTT Bei der Verwendung von TLSv1.3, das die zuvor ausgehandelten Parameter der TLS-Verbindung beibehält und die Anzahl der RTT beim Wiederaufbau einer bestehenden Verbindung auf 2 reduziert;
  • Für die Konfiguration von Keepalive für ausgehende Verbindungen (Aktivierung oder Deaktivierung der SO_KEEPALIVE-Option für Sockets) wurden neue Direktiven hinzugefügt:
    • «proxy_socket_keepalive» konfiguriert das Verhalten von «TCP keepalive» für ausgehende Verbindungen zum proxyierten Server;
    • «fastcgi_socket_keepalive» konfiguriert das Verhalten von «TCP keepalive» für ausgehende Verbindungen zum FastCGI-Server;
    • «grpc_socket_keepalive» konfiguriert das Verhalten von «TCP keepalive» für ausgehende Verbindungen zum gRPC-Server;
    • «memcached_socket_keepalive» konfiguriert das Verhalten von «TCP keepalive» für ausgehende Verbindungen zum Memcached-Server;
    • «scgi_socket_keepalive» konfiguriert das Verhalten von «TCP keepalive» für ausgehende Verbindungen zum SCGI-Server;
    • «uwsgi_socket_keepalive» konfiguriert das Verhalten von «TCP keepalive» für ausgehende Verbindungen zum uwsgi-Server.
  • In die Direktive «limit_req» wurde ein neuer Parameter «delay» hinzugefügt, der das Limit definiert, ab dessen Erreichung übermäßige Anfragen verzögert werden;
  • In den Block «upstream» wurden die neuen Direktiven «keepalive_timeout» und «keepalive_requests» hinzugefügt, um Limits für Keepalive festzulegen;
  • Die Direktive «ssl» wurde für veraltet erklärt, ersetzt durch den Parameter «ssl» in der Direktive «listen». Das Fehlen von SSL-Zertifikaten wird nun im Testkonfigurationsschritt erkannt, wenn die Direktive «listen» mit dem Parameter «ssl» verwendet wird;
  • Bei Verwendung der Direktive reset_timedout_connection werden nach Ablauf des Zeitlimits die Verbindungen jetzt mit dem Code 444 geschlossen;
  • SSL-Fehler «http request», «https proxy request», «unsupported protocol» und «version too low» werden jetzt im Protokoll mit dem Level «info» anstelle von «crit» angezeigt;
  • Unterstützung für die Methode poll in Windows-Systemen ab Windows Vista und neuer hinzugefügt;
  • Die Möglichkeit zur Verwendung von TLSv1.3 wurde bei der Erstellung mit der BoringSSL-Bibliothek sichergestellt, und nicht nur mit OpenSSL.

Quelle: opennet.ru

60GB SSD 8Gb DDR4