Cloudflare tilbyder et modul til understøttelse af HTTP / 3 i NGINX

CloudFlare

Cloudflare har forberedt et modul til at yde support til HTTP / 3-protokollen i NGINX. Modulet er færdigt i form af et snap på quiche-biblioteket udviklet hos Cloudflare med implementeringen af ​​QUIC og HTTP / 3 transportprotokollen. Quichekoden er skrevet i Rust, men modulet til NGINX er skrevet i C og får adgang til biblioteket via dynamiske links. Åbningstider er åbne under BSD-licensen.

Fra klientsoftwaren HTTP / 3-understøttelse er allerede blevet føjet til Chrome Canary eksperimentelle builds og krølleværktøjet. På serversiden er brugen af ​​isolerede testimplementeringer, der har begrænsede muligheder, hidtil været påkrævet. Evnen til at håndtere HTTP / 3 i nginx vil forenkle implementeringen af ​​servere med HTTP / 3-understøttelse betydeligt og det vil gøre testimplementeringen af ​​den nye protokol mere tilgængelig.

HTTP / 3 standardiserer brugen af ​​QUIC-protokollen som en transport til HTTP / 2. QUIC-protokollen blev udviklet af Google som et alternativ til TCP + TLS til internettet, derved har til hensigt at løse problemer med lang tid med installations- og koordineringsforbindelser i TCP og forsinker eliminering af pakketab under datatransmission. QUIC er et plug-in til UDP-protokollen, der understøtter multiplexing af flere forbindelser og giver krypteringsmetoder svarende til TLS / SSL.

Blandt de vigtigste egenskaber ved QUIC, der skiller sig ud:

  • Høj sikkerhed svarende til TLS (faktisk giver QUIC muligheden for at bruge TLS over UDP).
  • Flowintegritetskontrol, der forhindrer pakketab.
  • Evnen til at oprette en forbindelse med det samme (0-RTT, i ca. 75% af tilfældene kan data overføres umiddelbart efter afsendelse af forbindelsesopsætningspakken) og sikre minimale forsinkelser mellem at sende en anmodning og modtage et svar (RTT, rundturstid) .
  • Brug ikke det samme sekvensnummer ved gentransmission af en pakke, hvilket undgår tvetydighed ved bestemmelse af modtagne pakker og eliminerer ventetider.
  • Tabet af en pakke påvirker leveringen af ​​kun den tilknyttede strøm og stopper ikke leveringen af ​​data i strømme transmitteret parallelt over den aktuelle forbindelse.
  • Fejlkorrektionsværktøjer, der minimerer forsinkelser på grund af retransmission af mistede pakker. Brug af specielle fejlkorrektionskoder på pakkeniveau til at reducere situationer, der kræver retransmission af mistede pakkedata.
  • Kryptografiske blokgrænser er tilpasset QUIC-pakkegrænser, hvilket reducerer effekten af ​​pakketab på afkodning af indholdet af efterfølgende pakker
  • Ingen problemer med at blokere TCP-køen
  • Understøttelse af forbindelsesidentifikator, hvilket reducerer tiden til at etablere en genforbindelse for mobile klienter
  • Evne til at forbinde avancerede mekanismer til at kontrollere forbindelsesoverbelastning
  • Brug af teknikken til at forudsige båndbredden i hver retning for at sikre optimal pakkevideresendelsesintensitet, hvilket forhindrer den i at nå en tilstand af overbelastning, hvori pakketab observeres
  • Bemærkelsesværdig ydeevne og præstationsgevinster i forhold til TCP. For videotjenester som YouTube viste QUIC en reduktion på 30% i re-buffering, når man ser videoer.

Hvordan implementeres modulet til understøttelse af HTTP / 3 i NGINX?

For dem, der er interesserede i at kunne implementere dette modul på deres server, De kan gøre det ved at følge de instruktioner, vi deler nedenfor.

For at kompilere det, de skal bare downloade programrettelsen 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 support aktiveret:

 ./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 skal TLS-support baseres på BoringSSL-biblioteket ("–with-openssl = .. / quiche / deps / boringssl"), brug af OpenSSL understøttes endnu ikke.

For at acceptere forbindelser i konfigurationen skal de tilføje lytterdirektivet med "quic" -flagget.


Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.