Cloudflare har implementeret et modul til at understøtte HTTP/3 i NGINX
Cloudflare Company forberedtmodul at yde support til HTTP/3-protokollen i NGINX. Modulet er designet som en tilføjelse til biblioteket udviklet af Cloudflare quiche med implementering af QUIC- og HTTP/3-transportprotokollen. Quichekoden er skrevet i Rust, men selve NGINX-modulet er skrevet i C og får adgang til biblioteket ved hjælp af dynamisk linking. Udviklinger åben under BSD-licensen.
For at samle skal du blot downloade lappe til nginx 1.16 og kode quiche-biblioteker, og genopbygg derefter nginx med mulighederne "—with-http_v3_module —with-quiche=../quiche". Ved opbygning bør TLS-understøttelse være baseret på BoringSSL-biblioteket ("--with-openssl=../quiche/deps/boringssl"), brugen af OpenSSL er endnu ikke understøttet. For at acceptere forbindelser skal du tilføje lyttedirektivet med "quic" flaget til indstillingerne (for eksempel "lyt 443 quic genbrugsrapport").
I klientsoftware er HTTP/3-understøttelse allerede blevet tilføjet til eksperimentelle builds af Chrome Canary og curl-værktøjet. På serversiden var det indtil nu nødvendigt at bruge separat, begrænset testimplementeringer. Evnen til at behandle HTTP/3 i nginx vil væsentligt forenkle udrulningen af servere med HTTP/3-understøttelse og vil gøre testimplementering af den nye protokol mere tilgængelig. Fremkomsten af standardunderstøttelse af HTTP/3 i nginx forventes i 1.17.x-grenen i 6-12 måneder.
Husk, at HTTP/3 standardiserer brugen af QUIC-protokollen som en transport for HTTP/2. Protokol QUIC (Quick UDP Internet Connections) er blevet udviklet af Google siden 2013 som et alternativ til TCP+TLS-kombinationen til nettet, hvilket løser problemer med lange opsætnings- og forhandlingstider for forbindelser i TCP og eliminerer forsinkelser, når pakker går tabt under dataoverførsel. QUIC er en udvidelse af UDP-protokollen, der understøtter multipleksing af flere forbindelser og giver krypteringsmetoder svarende til TLS/SSL.
Høj sikkerhed svarende til TLS (i det væsentlige giver QUIC mulighed for at bruge TLS over UDP);
Flowintegritetskontrol, forhindrer pakketab;
Evnen til øjeblikkeligt at etablere en forbindelse (0-RTT, i ca. 75 % af tilfældene kan data transmitteres umiddelbart efter afsendelse af forbindelsesopsætningspakken) og give minimale forsinkelser mellem afsendelse af en anmodning og modtagelse af et svar (RTT, Round Trip Time);
Ikke at bruge det samme sekvensnummer ved gentransmission af en pakke, hvilket undgår tvetydighed i at identificere modtagne pakker og slipper af med timeouts;
Tab af en pakke påvirker kun leveringen af den strøm, der er knyttet til den, og stopper ikke leveringen af data i parallelle strømme, der transmitteres gennem den aktuelle forbindelse;
Fejlretningsfunktioner, der minimerer forsinkelser på grund af gentransmission af tabte pakker. Brug af specielle fejlkorrektionskoder på pakkeniveau for at reducere situationer, der kræver gentransmission af mistede pakkedata.
Kryptografiske blokgrænser er tilpasset QUIC-pakkegrænser, hvilket reducerer virkningen af pakketab på afkodning af indholdet af efterfølgende pakker;
Ingen problemer med blokering af TCP-køer;
Understøttelse af forbindelsesidentifikator, som reducerer den tid, det tager at etablere en genforbindelse for mobile klienter;
Mulighed for tilslutning af avancerede mekanismer til kontrol af forbindelsesoverbelastning;
Bruger per-direction-gennemløbsprognoseteknikker for at sikre, at pakker sendes med optimale hastigheder, hvilket forhindrer dem i at blive overfyldte og forårsage pakketab;
Mærkbar vækst ydeevne og gennemløb sammenlignet med TCP. For videotjenester som f.eks. YouTube har QUIC vist sig at reducere tilbagesendelsesoperationer, når man ser videoer med 30 %.