Cloudflare nudi modul za podršku HTTP / 3 u NGINX-u

Cloudflare

Cloudflare je pripremio modul za pružanje podrške za HTTP / 3 protokol u NGINX-u. Modul je gotov u obliku snapa na quiche biblioteci razvijen u Cloudflareu implementacijom protokola QUIC i HTTP / 3. Quiche kod napisan je na Rustu, ali modul za NGINX napisan je na jeziku C i pristupa biblioteci putem dinamičkih veza. Radni sati su otvoreni pod BSD licencom.

Iz klijentskog softvera, Podrška za HTTP / 3 već je dodana Chrome Canary eksperimentalnim verzijama i uslužni program za uvijanje. Na strani servera do sada je bila potrebna izolirana implementacija testa koja ima ograničene mogućnosti. Sposobnost rukovanja HTTP / 3 u nginxu će značajno pojednostaviti postavljanje servera s podrškom za HTTP / 3 i to će učiniti implementaciju testa novog protokola pristupačnijom.

HTTP / 3 standardizira upotrebu protokola QUIC kao transport za HTTP / 2. Google je protokol QUIC razvio kao alternativu TCP + TLS-u za web, čime je i razvijen ima za cilj rješavanje problema s dugim vremenom instalacije i koordinacijskih smjesa u TCP-u i odgađa eliminaciju gubitka paketa tokom prenosa podataka. QUIC je dodatak UDP protokolu koji podržava multipleksiranje više veza i pruža metode šifriranja ekvivalentne TLS / SSL-u.

Među ključnim karakteristikama QUIC-a koje se ističu:

  • Visoka sigurnost, slična TLS-u (ustvari, QUIC pruža mogućnost upotrebe TLS-a preko UDP-a).
  • Kontrola integriteta protoka koja sprečava gubitak paketa.
  • Mogućnost trenutnog uspostavljanja veze (0-RTT, u oko 75% slučajeva podaci se mogu prenijeti odmah nakon slanja paketa za postavljanje veze) i osigurati minimalna kašnjenja između slanja zahtjeva i primanja odgovora (RTT, povratno vrijeme) .
  • Ne korištenje istog broja sekvence pri ponovnom odašiljanju paketa, što izbjegava dvosmislenost u određivanju primljenih paketa i eliminira vrijeme čekanja.
  • Gubitak paketa utječe na isporuku samo prijenosa povezanog s njim i ne zaustavlja isporuku podataka u streamovima koji se paralelno prenose preko trenutne veze.
  • Alati za ispravljanje pogrešaka koji smanjuju kašnjenja zbog ponovnog slanja izgubljenih paketa. Korištenje posebnih kodova za ispravljanje grešaka na razini paketa kako bi se smanjile situacije koje zahtijevaju ponovni prijenos izgubljenih paketnih podataka.
  • Granice kriptografskog bloka poravnane su s granicama QUIC paketa, smanjujući učinak gubitka paketa na dekodiranje sadržaja sljedećih paketa
  • Nema problema s blokiranjem TCP reda
  • Podrška za identifikator veze, što smanjuje vrijeme uspostavljanja ponovnog povezivanja za mobilne klijente
  • Sposobnost povezivanja naprednih mehanizama za kontrolu preopterećenja veze
  • Korištenjem tehnike predviđanja širine pojasa u svakom smjeru kako bi se osigurao optimalan intenzitet prosljeđivanja paketa, sprečavajući da dostigne stanje zagušenja u kojem se uočava gubitak paketa
  • Izvanredne performanse i dobici u odnosu na TCP. Za video usluge poput YouTubea, QUIC je pokazao smanjenje od 30% u ponovnom puferiranju prilikom gledanja videozapisa.

Kako implementirati modul za podršku HTTP / 3 u NGINX?

Za one koje zanima mogućnost primjene ovog modula na svom serveru, To mogu učiniti slijedeći upute koje dijelimo u nastavku.

Da ga sastavim, oni samo moraju preuzeti zakrpu za nginx 1.16 i kod biblioteke quichea.

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

I mi kompajliramo NGINX sa omogućenom podrškom 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

Tijekom kompilacije, TLS podrška mora se temeljiti na BoringSSL biblioteci ("–with-openssl = .. / quiche / deps / boringssl"), upotreba OpenSSL-a još nije podržana.

Da bi prihvatili veze u konfiguraciji, trebat će dodati direktivu slušatelja s oznakom "quic".


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.