Az nginx 1.16.0 kiadása

Egy év fejlesztés után bemutatott a nagy teljesítményű HTTP szerver és a többprotokollos proxyszerver új stabil ága nginx 1.16.0, amely elnyelte a főágon belül felhalmozódott változásokat 1.15.x. A jövőben az 1.16-as stabil ág minden változása a súlyos hibák és sérülékenységek kiküszöbölésére fog vonatkozni. Hamarosan megalakul az nginx 1.17 fő ága, amelyen belül folytatódik az új funkciók fejlesztése. Azoknak a hétköznapi felhasználóknak, akiknek nem feladata a harmadik féltől származó modulokkal való kompatibilitás biztosítása, ajánlott használja a fő ágat, amely alapján az Nginx Plus kereskedelmi termék kiadásai háromhavonta jönnek létre.

A legfigyelemreméltóbb fejlesztések az 1.15.x upstream ág fejlesztése során:

  • Hozzáadtuk a változók „irányelvekben” való használatának lehetőségétssl_certificate' és 'ssl_certificate_key‘, amely a tanúsítványok dinamikus betöltésére használható;
  • Hozzáadtuk az SSL-tanúsítványok és titkos kulcsok változókból történő betöltésének lehetőségét köztes fájlok használata nélkül;
  • A blokkban"upstream» új irányelv végrehajtása «véletlen“, melynek segítségével megszervezheti a terheléselosztást a kapcsolat továbbítására szolgáló szerver véletlenszerű kiválasztásával;
  • A modulban ngx_stream_ssl_preread változó implementálva $ssl_preread_protocol,
    amely az ügyfél által támogatott SSL/TLS protokoll legmagasabb verzióját határozza meg. A változó lehetővé teszi konfigurációkat hozhat létre különböző protokollok használatával való eléréshez SSL-lel és anélkül, egyetlen hálózati porton keresztül, amikor a forgalmat a http és stream modulok használatával proxyzik. Például az SSH-n és HTTPS-en keresztüli hozzáférés egy porton keresztüli megszervezéséhez a 443-as port alapértelmezés szerint továbbítható az SSH-hoz, de ha az SSL-verzió meg van határozva, akkor továbbíthatja a HTTPS-re.

  • Egy új változó került hozzáadásra az upstream modulhoz "$upstream_bytes_eld", amely a csoportszerverre átvitt bájtok számát jeleníti meg;
  • A modulhoz folyam egy munkameneten belül több bejövő UDP-datagram feldolgozásának képessége is hozzáadásra került az ügyféltől;
  • Az irányelv"proxy_requests", az ügyféltől kapott datagramok számát határozza meg, amelyek elérésekor megszűnik a kliens és a meglévő UDP-munkamenet közötti kötés. A megadott számú datagram fogadása után az ugyanattól a klienstől kapott következő datagram új munkamenetet kezd;
  • A listen direktíva mostantól képes megadni a porttartományokat;
  • Hozzáadott direktíva "ssl_early_data» az üzemmód engedélyezéséhez 0-RTT a TLSv1.3 használatakor, amely lehetővé teszi a korábban egyeztetett TLS-kapcsolati paraméterek mentését, és az RTT-k számának 2-re csökkentését egy korábban létrehozott kapcsolat folytatásakor;
  • Új direktívák kerültek hozzáadásra a kimenő kapcsolatok megőrzésének konfigurálásához (a SO_KEEPALIVE opció engedélyezése vagy letiltása a socketeknél):

    • «proxy_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést a proxyszerverhez kimenő kapcsolatokhoz;
    • «fastcgi_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést a FastCGI-kiszolgálóhoz tartó kimenő kapcsolatokhoz;
    • «grpc_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést a gRPC-kiszolgálóhoz tartó kimenő kapcsolatokhoz;
    • «memcached_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést a memcached kiszolgálóhoz vezető kimenő kapcsolatokhoz;
    • «scgi_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést az SCGI-kiszolgálóhoz vezető kimenő kapcsolatokhoz;
    • «uwsgi_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést az uwsgi kiszolgálóhoz vezető kimenő kapcsolatokhoz.
  • Az irányelvben "limit_req" hozzáadott egy új „delay” paramétert, amely beállít egy határt, amely után a redundáns kérések késleltetésre kerülnek;
  • Új „keepalive_timeout” és „keepalive_requests” direktívák kerültek az „upstream” blokkhoz, hogy korlátokat állítsanak be a Keepalive számára;
  • Az "ssl" direktíva elavult, helyébe az "ssl" paraméter lépett a "listen" direktívában. A hiányzó SSL-tanúsítványok a konfiguráció tesztelésének szakaszában észlelhetők, amikor a „hallgatás” direktívát használja az „ssl” paraméterrel a beállításokban;
  • A reset_timedout_connection direktíva használatakor a kapcsolatok 444-es kóddal záródnak le, amikor az időtúllépés lejár;
  • A „http kérés”, „https proxy kérés”, „nem támogatott protokoll” és „a verzió túl alacsony” SSL-hibák most a „crit” helyett „info” szinten jelennek meg a naplóban;
  • Hozzáadott támogatás a lekérdezési módszerhez Windows rendszereken Windows Vista és újabb verziók esetén;
  • Felhasználási lehetőség TLSv1.3 amikor a BoringSSL könyvtárral építünk, nem csak az OpenSSL-lel.

Forrás: opennet.ru

Hozzászólás