nginx 1.20.0 bertsioa

Urtebeteko garapenaren ondoren, errendimendu handiko HTTP zerbitzariaren eta protokolo anitzeko proxy zerbitzariaren nginx 1.20.0 adar egonkor berri bat sartu da, 1.19.x adar nagusian pilatutako aldaketak biltzen dituena. Etorkizunean, 1.20 adar egonkorraren aldaketa guztiak akats eta ahultasun larriak ezabatzearekin lotuta egongo dira. Laster nginx 1.21-en adar nagusia eratuko da, eta bertan funtzio berrien garapena jarraituko du. Hirugarrenen moduluekin bateragarritasuna ziurtatzeko zeregina ez duten erabiltzaile arruntentzat, adar nagusia erabiltzea gomendatzen da, zeinaren arabera Nginx Plus produktu komertzialaren bertsioak hiru hilean behin sortzen diren.

Netcraft-en martxoko txosten baten arabera, nginx gune aktibo guztien % 20.15ean erabiltzen da (duela urtebete % 19.56, duela bi urte % 20.73), kategoria honetako ospearen bigarren postuari dagokiona (Apacheren kuota % 25.38koa da). (duela urtebete % 27.64), Google - % 10.09, Cloudflare - % 8.51. Aldi berean, gune guztiak kontuan hartuta, nginx-ek lidergoa mantentzen du eta merkatuaren % 35.34 hartzen du (duela urtebete % 36.91, duela bi urte). %27.52, Apache-ren kuota %25.98koa den bitartean, OpenResty (nginx eta LuaJIT-en oinarritutako plataforma) - %6.55, Microsoft IIS - %5.96.

Munduko milioi bisitatuenen artean, nginx-en kuota %25.55 da (duela urtebete %25.54, duela bi urte %26.22). Gaur egun, 419 milioi webgune inguru Nginx exekutatzen ari dira (459 milioi duela urtebete). W3Techs-en arabera, nginx guneen % 33.7tan erabiltzen da bisitatuen milioietatik, iazko apirilean zifra hori % 31.9koa izan zen, aurreko urtean - % 41.8 (beherakada Cloudflare http-ren kontabilitate bereiztera igarotzean azaltzen da. zerbitzaria). Apacheren kuota urtean %39.5etik %34ra jaitsi da, eta Microsoft IISen kuota %8.3tik %7ra. LiteSpeed-en kuota %6.3tik %8.4ra hazi da, eta Node.js %0.8tik %1.2ra. Errusian, nginx bisita gehien dauden guneen % 79.1etan erabiltzen da (duela urtebete - % 78.9).

1.19.x upstream adarra garatzean gehitu diren hobekuntza nabarmenenak:

  • OCSP (Online Certificate Status Protocol) protokoloan oinarritutako kanpoko zerbitzuak erabiliz bezeroen ziurtagiriak egiaztatzeko gaitasuna gehitu da. Egiaztapena gaitzeko, ssl_ocsp direktiba proposatzen da, cache-tamaina konfiguratzeko - ssl_ocsp_cache, ziurtagirian zehaztutako OCSP kudeatzailearen URLa birdefinitzeko - ssl_ocsp_responder.
  • ngx_stream_set_module modulua sartzen da, zerbitzari aldagaiari balio bat esleitzeko aukera ematen diona { listen 12345; ezarri $true 1; }
  • Proxy_cookie_flags direktiba gehitu da cookieen banderak zehazteko proxy-konexioetan. Adibidez, "httponly" bandera gehitzeko "one" cookien, eta "nosecure" eta "samesite=strict" banderak gainontzeko cookie guztientzat, eraikuntza hau erabil dezakezu: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=zorrotza;

    Cookieei banderak gehitzeko userid_flags zuzentarau antzeko bat ere ezartzen da ngx_http_userid modulurako.

  • "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" eta "uwsgi_ssl_conf_command" zuzentarauekin, OpenSSL konfiguratzeko parametro arbitrarioak ezar ditzakezu. Adibidez, ChaCha zifraketak eta TLSv1.3 zifraketen konfigurazio aurreratua lehenesteko, ssl_conf_command Aukerak PrioritizeChaCha zehaztu dezakezu; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • "ssl_reject_handshake" zuzentaraua gehitu da, SSL konexioak negoziatzeko saiakera guztiak baztertzeko agintzen duena (adibidez, SNI eremuan ostalari-izen ezezagunak dituzten dei guztiak baztertzeko erabil daiteke). zerbitzaria { listen 443 ssl; ssl_reject_handshake aktibatuta; } zerbitzaria { entzun 443 ssl; zerbitzari_izena adibidea.com; ssl_ziurtagiria adibidea.com.crt; ssl_certificate_key adibidea.com.key; }
  • Proxy_smtp_auth zuzentaraua posta-proxy-ra gehitu da, eta horri esker, erabiltzailea backend-ean autentifika dezakezu AUTH komandoa eta PLAIN SASL mekanismoa erabiliz.
  • "Keepalive_time" zuzentaraua gehitu da, zeinak bizirik mantenduko duen konexio bakoitzaren bizitza osoa mugatzen duena, eta ondoren konexioa itxiko da (ez da keepalive_timeout-ekin nahastu behar, zeinak iraungiko duen konexioa ixten den inaktibitate-denbora definitzen duena).
  • $connection_time aldagaia gehitu da, zeinaren bidez segundotan konexioaren iraupenari buruzko informazioa milisegundoko zehaztasunarekin.
  • "min_free" parametro bat gehitu da "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" eta "uwsgi_cache_path" zuzentarauetan, diskoko espazio librearen gutxieneko tamaina zehaztean oinarritutako cachearen tamaina arautzen duena.
  • "Lingering_close", "lingering_time" eta "lingering_timeout" zuzentarauak HTTP/2-rekin lan egiteko egokitu dira.
  • HTTP/2-n konexioa prozesatzeko kodea HTTP/1.x inplementaziotik hurbil dago. "http2_recv_timeout", "http2_idle_timeout" eta "http2_max_requests" ezarpen indibidualetarako laguntza eten egin da "keepalive_timeout" eta "keepalive_requests" zuzentarau orokorren alde. "http2_max_field_size" eta "http2_max_header_size" ezarpenak kendu dira eta horren ordez "large_client_header_buffers" erabili behar da.
  • "-e" komando-lerroko aukera berri bat gehitu da, errore-erregistroa idazteko fitxategi alternatibo bat zehazteko aukera ematen duena, ezarpenetan zehaztutako erregistroaren ordez erabiliko dena. Fitxategiaren izenaren ordez, stderr balio berezia zehaztu dezakezu.

Iturria: opennet.ru

Gehitu iruzkin berria