Nginx 1.26.0 lage ak sipò HTTP/3

Apre yon ane nan devlopman, yo te pibliye yon nouvo branch ki estab nan sèvè HTTP wo-pèfòmans ak sèvè proxy milti-pwotokòl nginx 1.26.0, ki enkòpore chanjman ki akimile nan branch prensipal 1.25.x. Nan lavni an, tout chanjman nan branch ki estab 1.26 yo pral gen rapò ak eliminasyon an nan erè grav ak frajilite. Byento pral branch prensipal la nan nginx 1.27 dwe fòme, nan ki devlopman nan nouvo karakteristik yo ap kontinye. Pou itilizatè òdinè ki pa gen travay pou asire konpatibilite ak modil twazyèm pati, li rekòmande pou itilize branch prensipal la, sou baz ki degaje pwodwi komèsyal Nginx Plus yo fòme chak twa mwa.

Dapre yon rapò Mas soti nan Netcraft, apeprè 243 milyon sit entènèt ap kouri Nginx (289 milyon dola yon ane de sa). Nginx yo itilize sou 18.15% nan tout sit aktif (yon ane de sa 18.94%, de ane de sa 20.08%), ki koresponn ak dezyèm plas nan popilarite nan kategori sa a (pataje Apache a koresponn ak 20.09% (yon ane de sa 20.52, de zan). de sa 22.58%), Cloudflare - 14.12% (11.32%, 10.42%), Google - 10.41% (9.89%, 8.89%) An menm tan an, lè w ap konsidere tout sit, nginx konsève lidèchip li yo ak okipe 22.31% nan mache a. (yon ane de sa 25.94%, de zan de sa - 31.13%), pandan y ap pataje Apache a koresponn ak 20.17% (20.58, 23.08%), Cloudflare - 11.24% (10.17, 5.49%), OpenResty (nginx ak LuaJIT ki baze sou platfòm7.93) -. % (7.94%, 8.01%).

Pami milyon sit ki pi vizite nan mond lan, pataje nan nginx se 20.63% (yon ane de sa 21.37%, de ane de sa 21.79%), Cloudflare - 22.59% (yon ane de sa 21.62%), Apache httpd - 20.09% (21.18%) %). Dapre W3Techs, nginx yo itilize sou 34.3% nan sit ki pi vizite milyon dola, nan mwa avril ane pase a figi sa a te 34.5%, ane a anvan - 33.1%. Pataje Apache a te tonbe pandan ane a soti nan 32.2% a% 30.1, ak pataje Microsoft IIS a tonbe soti nan 5.6% a 4.8%. Pataje Node.js te ogmante de 2.4% a 3.2%, ak pataje LiteSpeed ​​a soti nan 11.8% a 12.9%.

Amelyorasyon ki pi remakab yo te ajoute pandan devlopman branch 1.25.x en:

  • Te ajoute modil ngx_http_v3 ak sipò eksperimantal pou pwotokòl HTTP/3. Pou konstwi modil la, yo bay opsyon "--with-http_v3_module". HTTP/3 defini itilizasyon pwotokòl QUIC (Quick UDP Internet Connections) kòm yon transpò pou HTTP/2. QUIC se yon ekstansyon pwotokòl UDP ki sipòte plizyè koneksyon epi ki bay metòd chifreman ki ekivalan a TLS/SSL. Pwotokòl la te kreye an 2013 pa Google kòm yon altènativ a konbinezon an TCP + TLS pou entènèt la, rezoud pwoblèm ak konfigirasyon koneksyon long ak tan negosyasyon nan TCP ak elimine reta lè pake yo pèdi pandan transfè done.
  • Yo te ajoute yon direktiv separe "http2" pou selektivman pèmèt pwotokòl HTTP/2 an koneksyon avèk sèvè (yo ka itilize nan blòk "sèvè" separe). Paramèt "http2" ki nan direktiv "koute" la te demode.
  • Pwoteksyon kont aktivite nòmal nan kliyan HTTP/2 yo te ranfòse, epi, an patikilye, kont atak DoS nan klas "Rapid Reset", kote yon gwo kantite fil imedyatman reset yo kreye nan yon sèl koneksyon HTTP/2. Nan konfigirasyon default la, atak sa yo limite pa limit sou kantite demann pou chak koneksyon "keepalive_requests" (apre chak 1000 demann koneksyon an pral reset) ak restriksyon yo "limit_req". Pou reponn pi bonè nan inondasyon ak demann atravè yon gwo kantite fil, yo te ajoute yon limit adisyonèl ki pa pèmèt kreyasyon an plis pase 256 (2 * max_concurrent_streams) nouvo fil pou chak sik pwosesis evènman pa default. Nouvo limit la fè li posib pou kòmanse bloke demann anvan limit jeneral sou kantite fil similtane yo rive jwenn, pou egzanp lè yo trete fil yo asynchrone oswa yo ap vide.
  • Yo te ajoute sipò pou modil difizyon an. sèvè vityèl yo, konfigirasyon li defini nan blòk "server { ... }" la lè l sèvi avèk direktiv server_name la. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
  • Te ajoute yon nouvo modil ngx_stream_pass_module, ki fèt pou voye koneksyon aksepte yo dirèkteman nan nenpòt socket koute ki asosye ak modil tankou http, stream, ak mail. stream { server { listen 12345 SSL; ssl_certificate domèn.crt; ssl_certificate_key domèn.key; pase 127.0.0.1:8000; } }
  • Direktiv koute modil kouran an aplike sipò pou paramèt "deferred" (pèmèt deferred aksepte), "accept_filter" (filtre koneksyon k ap rantre aplike anvan yo rele fonksyon aksepte) ak "setfib" (mete tab routage).
  • Pou kèk achitekti, sipò yo te aplike pou detèmine gwosè blòk (liy kachèt) yo itilize pou transfere done ant kachèt CPU a ak memwa.
  • Amelyore jesyon tanpon yo itilize lè yo detekte otomatikman koneksyon HTTP/2.
  • Pèfòmans lansman konfigirasyon ak yon gwo kantite direktiv "kote" yo te amelyore.
  • Sipò pou teknoloji pouse sèvè nan HTTP/2 yo te retire.
  • Direktiv "ssl" la, ki te deja depreke, te sispann.

Lage ki estab nan pwojè FreeNginx 1.26.0, ki devlope yon fouchèt nan Nginx, te pibliye de semèn de sa. Fouchèt la ap devlope pa Maxim Dunin, youn nan kle devlopè Nginx yo. FreeNginx pozisyone kòm yon pwojè san pwofi ki bay devlopman nan baz kòd Nginx san entèvansyon antrepriz.

Sous: opennet.ru

Achte hosting serye pou sit ki gen pwoteksyon DDoS, sèvè VPS VDS 🔥 Achte yon hébergement sit entènèt serye ak pwoteksyon DDoS, sèvè VPS VDS | ProHoster