Cloudflare ofron një modul për të mbështetur HTTP / 3 në NGINX

CloudFlare

Cloudflare ka përgatitur një modul për të siguruar mbështetje për protokollin HTTP / 3 në NGINX. Moduli është bërë në formën e një shkrepjeje në bibliotekën quiche zhvilluar në Cloudflare me zbatimin e protokollit të transportit QUIC dhe HTTP / 3. Kodi quiche është shkruar në Rust, por moduli për NGINX është shkruar në C dhe hyn në bibliotekë përmes lidhjeve dinamike. Orët e funksionimit janë të hapura nën licencën BSD.

Nga programi i klientit, Mbështetja HTTP / 3 është shtuar tashmë në ndërtimet eksperimentale të Chrome Canary dhe dobia e curl. Nga ana e serverit, deri më tani është kërkuar përdorimi i implementimeve të izoluara të provave që kanë aftësi të kufizuara. Aftësia për të trajtuar HTTP / 3 në nginx do të thjeshtojë ndjeshëm vendosjen e serverave me mbështetjen HTTP / 3 dhe kjo do ta bëjë zbatimin e testit të protokollit të ri më të arritshëm.

HTTP / 3 standardizon përdorimin e protokollit QUIC si një transport për HTTP / 2. Protokolli QUIC u zhvillua nga Google si një alternativë ndaj TCP + TLS për Web, në këtë mënyrë synon të zgjidhë problemet me një kohë të gjatë të instalimeve dhe përbërësve të koordinimit në TCP dhe vonon eliminimin e humbjes së paketës gjatë transmetimit të të dhënave. QUIC është një shtesë në protokollin UDP që mbështet multipleksimin e lidhjeve të shumta dhe siguron metoda kriptimi ekuivalente me TLS / SSL.

Ndër karakteristikat kryesore të QUIC që bien në sy:

  • Siguri e lartë, e ngjashme me TLS (në fakt, QUIC siguron mundësinë e përdorimit të TLS mbi UDP).
  • Kontrolli i integritetit të rrjedhës që parandalon humbjen e paketës.
  • Aftësia për të vendosur një lidhje në çast (0-RTT, në rreth 75% të rasteve, të dhënat mund të transferohen menjëherë pas dërgimit të paketës së konfigurimit të lidhjes) dhe të sigurojnë vonesa minimale midis dërgimit të një kërkese dhe marrjes së një përgjigje (RTT, Koha e Rrugës së Rrugës) .
  • Mos përdorimi i të njëjtit numër të sekuencës kur ritransmeton një paketë, e cila shmang paqartësinë në përcaktimin e paketave të marra dhe eliminon ndërprerjet.
  • Humbja e një pakete ndikon në shpërndarjen e vetëm rrjedhës së lidhur me të dhe nuk ndalon dërgimin e të dhënave në transmetimet e transmetuara paralelisht mbi lidhjen aktuale.
  • Mjetet e korrigjimit të gabimeve që minimizojnë vonesat për shkak të ritransmetimit të paketave të humbura. Përdorimi i kodeve speciale të korrigjimit të gabimit në nivelin e paketës për të zvogëluar situatat që kërkojnë ritransmetimin e të dhënave të paketës së humbur.
  • Kufijtë e bllokut kriptografik janë në përputhje me kufijtë e paketave QUIC, duke zvogëluar efektin e humbjes së paketës në dekodimin e përmbajtjes së paketave pasuese
  • Nuk ka probleme me bllokimin e radhës TCP
  • Mbështetje për identifikuesin e lidhjes, i cili zvogëlon kohën për të vendosur një rilidhje për klientët celularë
  • Aftësia për të lidhur mekanizmat e përparuar për të kontrolluar mbingarkesën e lidhjes
  • Përdorimi i teknikës së parashikimit të gjerësisë së brezit në secilin drejtim për të siguruar intensitetin optimal të përcjelljes së paketës, duke mos lejuar që ajo të arrijë një gjendje të ngjeshur në të cilën vërehet humbja e paketës
  • Performanca dhe performanca e shquar e performancës mbi TCP. Për shërbimet video si YouTube, QUIC tregoi një ulje prej 30% të operacioneve të ruajtjes së parave kur shikoni video.

Si të implementojmë modulin për të mbështetur HTTP / 3 në NGINX?

Për ata që janë të interesuar të jenë në gjendje të zbatojnë këtë modul në serverin e tyre, Ata mund ta bëjnë këtë duke ndjekur udhëzimet që ndajmë më poshtë.

Për ta përpiluar atë, ata thjesht duhet të shkarkojnë patch-in për nginx 1.16 dhe kodin e bibliotekës quiche.

curl -O https://nginx.org/download/nginx-1.16.1.tar.gz

tar xzvf nginx-1.16.1.tar.gz

git clone --recursive https://github.com/cloudflare/quiche

cd nginx-1.16.1

patch -p01 < ../quiche/extras/nginx/nginx-1.16.patch

Dhe ne përpilojmë NGINX me mbështetjen e aktivizuar HTTP / 3:

 ./configure                                 \

--prefix=$PWD                           \

--with-http_ssl_module                  \

--with-http_v2_module                   \

--with-http_v3_module                   \

--with-openssl=../quiche/deps/boringssl \

--with-quiche=../quiche

make

Gjatë përpilimit, mbështetja e TLS duhet të bazohet në bibliotekën BoringSSL ("–with-openssl = .. / quiche / deps / boringssl"), përdorimi i OpenSSL nuk është mbështetur ende.

Për të pranuar lidhjet në konfigurim, ata do të duhet të shtojnë direktivën e dëgjuesit me flamurin "quic".


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.