Cloudflare ofereix un mòdul per suportar HTTP / 3 en Nginx

Cloudflare

Cloudflare ha preparat un mòdul per proporcionar suport per al protocol HTTP / 3 en Nginx. El mòdul es realitza en forma d'un complement sobre la biblioteca de quiche desenvolupat en Cloudflare amb la implementació de el protocol de transport QUIC i HTTP / 3. El codi de quiche està escrit a Rust, Però el mòdul per Nginx està escrit en C i accedeix a la biblioteca mitjançant enllaços dinàmics. Les hores d'operació estan obertes sota la llicència BSD.

Des del programari de client, el suport HTTP / 3 ia s'ha afegit a les compilacions experimentals de Chrome Canary i la utilitat curl. De la banda de servidor, fins ara s'ha requerit l'ús d'implementacions de prova aïllades que tenen capacitats limitades. La capacitat de manejar HTTP / 3 en nginx simplificarà significativament la implementació de servidors amb suport HTTP / 3 i farà que la implementació de prova de el nou protocol sigui més accessible.

HTTP / 3 estandarditza l'ús de l'protocol QUIC com transport per a HTTP / 2. El protocol QUIC va ser desenvolupat per Google com una alternativa a TCP + TLS per a la Web, de manera que es pretén resoldre problemes amb un gran temps de compostos d'instal·lació i de coordinació en TCP i retards eliminació de la pèrdua de paquets durant la transmissió de dades. QUIC és un complement de l'protocol UDP que admet la multiplexació de múltiples connexions i proporciona mètodes de xifrat equivalents a TLS / SSL.

Dins de les característiques clau de QUIC que es destaquen:

  • Alta seguretat, similar a TLS (de fet, QUIC proporciona la capacitat de fer servir TLS sobre UDP).
  • Control d'integritat de flux que evita la pèrdua de paquets.
  • La capacitat d'establir una connexió a l'instant (0-RTT, en aproximadament el 75% dels casos, les dades es poden transferir immediatament després d'enviar el paquet de configuració de la connexió) i garantir retards mínims entre l'enviament d'una sol·licitud i la recepció d'una resposta (RTT, Temps d'anada i tornada).
  • No fer servir el mateix nombre de seqüència a l'retransmetre un paquet, el que evita l'ambigüitat en la determinació dels paquets rebuts i elimina els temps d'espera.
  • La pèrdua d'un paquet afecta el lliurament de només el flux associat amb ell i no atura el lliurament de dades en fluxos transmesos en paral·lel a través de la connexió actual.
  • Eines de correcció d'errors que minimitzen els retards a causa de la retransmissió de paquets perduts. L'ús de codis especials de correcció d'errades a nivell de paquet per reduir situacions que requereixen la retransmissió de dades de paquets perduts.
  • Els límits dels blocs criptogràfics estan alineats amb els límits dels paquets QUIC, el que redueix l'efecte de la pèrdua de paquets en la descodificació de el contingut dels següents paquets
  • No hi ha problemes amb el bloqueig de la cua TCP
  • Suport per l'identificador de connexió, que redueix el temps per establir una reconnexió per a clients mòbils
  • Capacitat per connectar mecanismes avançats per controlar la sobrecàrrega de la connexió
  • Usant la tècnica de predir l'ample de banda en cada direcció per assegurar una intensitat òptima d'enviament de paquets, evitant que arribi a un estat de congestió en el qual s'observa la pèrdua de paquets
  • Rendiment notable i guanys de rendiment sobre TCP. Per a serveis de vídeo com YouTube, QUIC va mostrar una reducció de l'30% en les operacions de re-emmagatzematge en memòria intermèdia a l'mirar vídeos.

Com implementar el mòdul de suportar HTTP / 3 en Nginx?

Per als que estiguin interessats en poder implementar aquest mòdul en el seu servidor, podran fer-ho seguint les instruccions que compartim a continuació.

Per compilar, simplement han de descarregar el pegat per nginx 1.16 i el codi de la biblioteca de quiche.

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

I compilem Nginx amb suport HTTP / març habilitat:

 ./configure                                 \

--prefix=$PWD                           \

--with-http_ssl_module                  \

--with-http_v2_module                   \

--with-http_v3_module                   \

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

--with-quiche=../quiche

make

Durant la compilació, el suport de TLS s'ha de basar en la biblioteca BoringSSL ( «-with-openssl = .. / quiche / Deps / boringssl»), encara no s'admet l'ús d'OpenSSL.

Per acceptar connexions en la configuració, hauran afegir la directiva d'escolta amb l'indicador «quic».


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.