Cloudflare tilbyr en modul som støtter HTTP / 3 i NGINX

CloudFlare

Cloudflare har utarbeidet en modul for å gi støtte for HTTP / 3-protokollen i NGINX. Modulen er ferdig i form av et snap på quiche-biblioteket utviklet på Cloudflare med implementeringen av transportprotokollen QUIC og HTTP / 3. Quiche-koden er skrevet i Rust, men modulen for NGINX er skrevet i C og får tilgang til biblioteket gjennom dynamiske lenker. Åpningstider er åpne under BSD-lisensen.

Fra klientprogramvaren, HTTP / 3-støtte er allerede lagt til i eksperimentelle versjoner av Chrome Canary og krøllverktøyet. På serversiden har det hittil vært påkrevd å bruke isolerte testimplementeringer som har begrenset kapasitet. Evnen til å håndtere HTTP / 3 i nginx vil forenkle distribusjonen av servere med HTTP / 3-støtte betydelig og det vil gjøre testimplementeringen av den nye protokollen mer tilgjengelig.

HTTP / 3 standardiserer bruken av QUIC-protokollen som en transport for HTTP / 2. QUIC-protokollen ble utviklet av Google som et alternativ til TCP + TLS for Internett, og dermed har til hensikt å løse problemer med lang tid med installasjons- og koordineringsforbindelser i TCP og forsinker eliminering av pakketap under dataoverføring. QUIC er en plugin-modul til UDP-protokollen som støtter multipleksing av flere tilkoblinger og gir krypteringsmetoder som tilsvarer TLS / SSL.

Blant nøkkelegenskapene til QUIC som skiller seg ut:

  • Høy sikkerhet, i likhet med TLS (faktisk gir QUIC muligheten til å bruke TLS over UDP).
  • Flytintegritetskontroll som forhindrer tap av pakke.
  • Evnen til å umiddelbart opprette en forbindelse (0-RTT, i omtrent 75% av tilfellene kan data overføres umiddelbart etter sending av oppsettpakken) og sikre minimale forsinkelser mellom å sende en forespørsel og motta et svar (RTT, rundturstid) .
  • Bruk ikke det samme sekvensnummeret når du sender en pakke på nytt, noe som unngår tvetydighet ved å bestemme mottatte pakker og eliminerer tidsavbrudd.
  • Å miste en pakke påvirker levering av bare strømmen som er tilknyttet den, og stopper ikke levering av data i strømmer som overføres parallelt over den nåværende forbindelsen.
  • Feilkorrigeringsverktøy som minimerer forsinkelser på grunn av retransmissjon av tapte pakker. Bruk av spesielle feilkorreksjonskoder på pakkenivå for å redusere situasjoner som krever overføring av tapte pakkedata.
  • Kryptografiske blokkgrenser er justert med QUIC-pakkegrenser, noe som reduserer effekten av pakketap på dekoding av innholdet i påfølgende pakker
  • Ingen problemer med å blokkere TCP-køen
  • Støtte for tilkoblingsidentifikator, noe som reduserer tiden for å etablere en ny forbindelse for mobile klienter
  • Evne til å koble avanserte mekanismer for å kontrollere tilkoblingsoverbelastning
  • Ved hjelp av teknikken for å forutsi båndbredden i hver retning for å sikre en optimal videresendingsintensitet for pakken, forhindrer den å nå en tilstand av overbelastning der pakketap observeres
  • Bemerkelsesverdig ytelse og ytelsesgevinster over TCP. For videotjenester som YouTube viste QUIC en reduksjon på 30% i re-buffering når du ser på videoer.

Hvordan implementerer du modulen for å støtte HTTP / 3 i NGINX?

For de som er interessert i å kunne implementere denne modulen på serveren sin, De kan gjøre det ved å følge instruksjonene vi deler nedenfor.

For å kompilere det, de må bare laste ned oppdateringen til nginx 1.16 og quiche-bibliotekets kode.

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

Og vi kompilerer NGINX med HTTP / 3-støtte aktivert:

 ./configure                                 \

--prefix=$PWD                           \

--with-http_ssl_module                  \

--with-http_v2_module                   \

--with-http_v3_module                   \

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

--with-quiche=../quiche

make

Under kompilering bør TLS-støtte baseres på BoringSSL-biblioteket ("–with-openssl = .. / quiche / deps / boringssl"), bruk av OpenSSL støttes ennå ikke.

For å godta forbindelser i konfigurasjonen, må de legge til lytterdirektivet med "quic" -flagget.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.