Cloudflare erbjuder en modul för att stödja HTTP / 3 i NGINX

CloudFlare

Cloudflare har förberett en modul för att ge stöd för HTTP / 3-protokollet i NGINX. Modulen är klar i form av en snap på quiche-biblioteket utvecklats på Cloudflare med implementeringen av transportprotokollet QUIC och HTTP / 3. Quichekoden är skriven i Rust, men modulen för NGINX är skriven i C och går åt biblioteket via dynamiska länkar. Öppettider är öppna enligt BSD-licensen.

Från klientprogramvaran, HTTP / 3-stöd har redan lagts till i experimentella versioner av Chrome Canary och curl-verktyget. På serversidan har det hittills varit nödvändigt att använda isolerade testimplementeringar som har begränsad kapacitet. Möjligheten att hantera HTTP / 3 i nginx förenklar distributionen av servrar med HTTP / 3-stöd avsevärt och det kommer att göra testimplementeringen av det nya protokollet mer tillgängligt.

HTTP / 3 standardiserar användningen av QUIC-protokollet som en transport för HTTP / 2. QUIC-protokollet utvecklades av Google som ett alternativ till TCP + TLS för webben, därmed har för avsikt att lösa problem med en lång tid av installations- och koordineringsföreningar i TCP och fördröjer eliminering av paketförlust under dataöverföring. QUIC är ett plugin-program till UDP-protokollet som stöder multiplexering av flera anslutningar och ger krypteringsmetoder som motsvarar TLS / SSL.

Bland de viktigaste egenskaperna hos QUIC som sticker ut:

  • Hög säkerhet, liknar TLS (i själva verket ger QUIC möjligheten att använda TLS över UDP).
  • Flödesintegritetskontroll som förhindrar paketförlust.
  • Möjligheten att upprätta en anslutning direkt (0-RTT, i cirka 75% av fallen kan data överföras omedelbart efter att anslutningspaketet har skickats) och säkerställa minimala förseningar mellan att skicka en förfrågan och ta emot ett svar (RTT, rundturstid) .
  • Använd inte samma sekvensnummer vid sändning av ett paket igen, vilket undviker tvetydighet vid bestämning av mottagna paket och eliminerar timeouts.
  • Förlusten av ett paket påverkar leveransen av endast strömmen som är associerad med det och stoppar inte leveransen av data i strömmar som sänds parallellt över den aktuella anslutningen.
  • Felkorrigeringsverktyg som minimerar förseningar på grund av återöverföring av förlorade paket. Användningen av speciella felkorrigeringskoder på paketnivå för att minska situationer som kräver återöverföring av förlorade paketdata.
  • Kryptografiska blockgränser anpassas till QUIC-paketgränser, vilket minskar effekten av paketförlust på avkodning av innehållet i efterföljande paket
  • Inga problem med att blockera TCP-kön
  • Stöd för anslutningsidentifierare, vilket minskar tiden för att skapa en återanslutning för mobila klienter
  • Möjlighet att ansluta avancerade mekanismer för att kontrollera anslutningsöverbelastning
  • Använda tekniken för att förutsäga bandbredden i varje riktning för att säkerställa optimal paketvideresändningsintensitet, vilket förhindrar att den når ett tillstånd av överbelastning där paketförlust observeras
  • Anmärkningsvärd prestanda och prestationsvinster jämfört med TCP. För videotjänster som YouTube visade QUIC en 30% minskning av återbuffringsåtgärder när man tittade på videor.

Hur implementerar jag modulen för att stödja HTTP / 3 i NGINX?

För dem som är intresserade av att kunna implementera den här modulen på sin server, De kan göra det genom att följa instruktionerna vi delar nedan.

För att sammanställa det, de måste bara ladda ner korrigeringsfilen för nginx 1.16 och quiche-bibliotekskoden.

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

Och vi sammanställer NGINX med HTTP / 3-stöd aktiverat:

 ./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 måste TLS-stöd baseras på BoringSSL-biblioteket ("–with-openssl = .. / quiche / deps / boringssl"), användning av OpenSSL stöds ännu inte.

För att acceptera anslutningar i konfigurationen måste de lägga till lyssnardirektivet med "quic" -flaggan.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.