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 snimke na quiche knjižnici razvijen u Cloudflareu primjenom transportnog protokola QUIC i HTTP / 3. Quiche kôd 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 u eksperimentalne verzije Chrome Canary i uslužni program za uvijanje. Na strani poslužitelja do sada je bila potrebna izolirana implementacija testa koja ima ograničene mogućnosti. Sposobnost rukovanja HTTP / 3 u nginxu značajno će pojednostaviti postavljanje poslužitelja s podrškom za HTTP / 3 i učinit će testnu provedbu 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 namjerava riješiti probleme s dugim vremenom instalacije i koordinacijskih spojeva u TCP-u i odgađa uklanjanje gubitka paketa tijekom prijenosa 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 osiguravaju minimalna kašnjenja između slanja zahtjeva i primanja odgovora (RTT, povratno vrijeme) .
  • Ne korištenje istog sekvencijskog broja prilikom ponovnog odašiljanja paketa, što izbjegava dvosmislenost u određivanju primljenih paketa i eliminira vremenska ograničenja.
  • Gubitak paketa utječe na isporuku samo s njim povezanog toka 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 pogreš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, sprječavajući ga da dosegne stanje zagušenja u kojem se opaža gubitak paketa
  • Izvanredne performanse i dobici u odnosu na TCP. Za video usluge kao što je YouTube, QUIC je pokazao smanjenje od 30% u ponovnom puferiranju prilikom gledanja videozapisa.

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

Za one koji su zainteresirani za mogućnost primjene ovog modula na svom poslužitelju, To mogu učiniti slijedeći upute koje dijelimo u nastavku.

Da biste ga sastavili, oni samo moraju preuzeti zakrpu za nginx 1.16 i kod knjižnice 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

A mi kompajliramo NGINX s 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 trebala bi se temeljiti na biblioteci BoringSSL ("–with-openssl = .. / quiche / deps / boringssl"), upotreba OpenSSL-a još nije podržana.

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


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.