Cloudflare ponuja modul za podporo HTTP / 3 v NGINX

Cloudflare

Cloudflare je pripravil modul za podporo protokolu HTTP / 3 v NGINX. Modul je končan v obliki zaskoka na knjižnici quiche razvit v Cloudflareju z izvajanjem transportnega protokola QUIC in HTTP / 3. Koda quiche je napisana v Rustu, vendar je modul za NGINX napisan v jeziku C in dostopa do knjižnice prek dinamičnih povezav. Ure obratovanja so odprte pod licenco BSD.

Iz odjemalske programske opreme Podpora za HTTP / 3 je že dodana poskusnim gradnjam Chrome Canary in pripomoček za kodranje. Na strežniški strani je bila doslej potrebna uporaba izoliranih testnih izvedb z omejenimi zmožnostmi. Sposobnost obdelave HTTP / 3 v nginxu bo znatno poenostavil uvajanje strežnikov s podporo HTTP / 3 in bo omogočila dostopnejšo izvajanje preskusa novega protokola.

HTTP / 3 standardizira uporabo protokola QUIC kot prevoz za HTTP / 2. Google je protokol QUIC razvil kot alternativo TCP + TLS za splet in s tem namerava rešiti težave z dolgim ​​časom namestitve in koordinacijskih spojin v TCP in zamuja pri odpravi izgube paketov med prenosom podatkov. QUIC je vtičnik za protokol UDP, ki podpira multipleksiranje več povezav in zagotavlja metode šifriranja, enakovredne TLS / SSL.

Med ključnimi značilnostmi QUIC, ki izstopajo:

  • Visoka varnost, podobna TLS (pravzaprav QUIC omogoča uporabo TLS prek UDP).
  • Nadzor integritete pretoka, ki preprečuje izgubo paketov.
  • Možnost takojšnje vzpostavitve povezave (0-RTT, v približno 75% primerov je mogoče podatke prenesti takoj po pošiljanju paketa za nastavitev povezave) in zagotoviti minimalne zamude med pošiljanjem zahteve in prejemanjem odgovora (RTT, čas povratnega potovanja) .
  • Če pri ponovnem pošiljanju paketa ne uporabite iste zaporedne številke, se izognete dvoumnosti pri določanju prejetih paketov in odpravite čakalne dobe.
  • Izguba paketa vpliva na dostavo samo z njim povezanega toka in ne ustavi dostave podatkov v tokovih, ki se vzporedno prenašajo po trenutni povezavi.
  • Orodja za odpravljanje napak, ki zmanjšujejo zamude zaradi ponovnega pošiljanja izgubljenih paketov. Uporaba posebnih kod za popravljanje napak na ravni paketov za zmanjšanje situacij, ki zahtevajo ponovno oddajo izgubljenih paketnih podatkov.
  • Meje kriptografskih blokov so poravnane z mejami paketov QUIC, kar zmanjšuje učinek izgube paketov na dekodiranje vsebine naslednjih paketov
  • Ni težav z blokiranjem čakalne vrste TCP
  • Podpora za identifikator povezave, ki skrajša čas za vzpostavitev ponovne povezave za mobilne odjemalce
  • Sposobnost povezovanja naprednih mehanizmov za nadzor preobremenitve povezave
  • Uporaba tehnike napovedovanja pasovne širine v vsaki smeri, da se zagotovi optimalna intenzivnost preusmeritve paketov in prepreči, da bi dosegla stanje zastojev, v katerem opazimo izgubo paketa
  • Izjemna zmogljivost in povečanje zmogljivosti v primerjavi s TCP. Za video storitve, kot je YouTube, je QUIC pokazal 30-odstotno zmanjšanje ponovnega medpomnjenja med gledanjem videoposnetkov.

Kako implementirati modul za podporo HTTP / 3 v NGINX?

Za tiste, ki jih zanima izvajanje tega modula na svojem strežniku, To lahko storijo tako, da upoštevajo spodnja navodila.

Če ga želite sestaviti, le prenesti morajo popravke za nginx 1.16 in kodo knjižnice 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

In zberemo NGINX z omogočeno podporo za 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

Med prevajanjem mora podpora za TLS temeljiti na knjižnici BoringSSL ("–with-openssl = .. / quiche / deps / boringssl"), uporaba OpenSSL še ni podprta.

Če želijo sprejeti povezave v konfiguraciji, bodo morali dodati direktivo poslušalca z zastavico "quic".


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.