Cloudflare offre un modulu per supportà HTTP / 3 in NGINX

Cloudflare

Cloudflare hà preparatu un modulu per furnisce supportu per u protocolu HTTP / 3 in NGINX. U modulu hè fattu in forma di una stampa nantu à a biblioteca di quiche sviluppatu in Cloudflare cù l'implementazione di u protocolu di trasportu QUIC è HTTP / 3. U codice quiche hè scrittu in Rust, ma u modulu per NGINX hè scrittu in C è accede à a biblioteca per mezu di ligami dinamichi. L'ore di travagliu sò aperte sottu a licenza BSD.

Da u software cliente, U supportu HTTP / 3 hè digià statu aghjuntu à e costruzioni sperimentali di Chrome Canary è l'utilità di curl. Da u latu di u servitore, l'usu di implementazioni di teste isolate chì anu capacità limitate hè statu finora necessariu. A capacità di gestisce HTTP / 3 in nginx simplificarà significativamente a distribuzione di servitori cù supportu HTTP / 3 è farà chì l'implementazione di teste di u novu protocolu sia più accessibile.

HTTP / 3 standardizeghja l'usu di u protocolu QUIC cum'è trasportu per HTTP / 2. U protocolu QUIC hè statu sviluppatu da Google cum'è alternativa à TCP + TLS per u Web, cusì intende risolve i prublemi cù un longu tempu di stallazione è cumposti di coordinazione in TCP è ritarda l'eliminazione di a perdita di pacchetti durante a trasmissione di dati. QUIC hè un plug-in per u protocolu UDP chì supporta a multiplexazione di più cunnessioni è furnisce metodi di crittografia equivalenti à TLS / SSL.

Trà e caratteristiche chjave di QUIC chì spiccanu:

  • Alta sicurezza, simile à TLS (in realtà, QUIC furnisce a capacità di aduprà TLS sopra UDP).
  • Cuntrollu di integrità di flussu chì impedisce a perdita di pacchetti.
  • A capacità di stabilisce una cunnessione istantaneamente (0-RTT, in circa u 75% di i casi, i dati ponu esse trasferiti immediatamente dopu l'inviu di u pacchettu di cunfigurazione di cunnessione) è assicurà ritardi minimi trà l'inviu di una richiesta è a ricezione di una risposta (RTT, Tempu di Ritornu) .
  • Ùn aduprendu micca u listessu numeru di sequenza quandu si trasmette un pacchettu, chì evita l'ambiguità per determinà i pacchetti ricevuti è elimina i tempi d'attesa.
  • A perdita di un pacchettu affetta a consegna di solu u flussu assuciatu cun ellu è ùn ferma micca a consegna di dati in flussi trasmessi in parallelo nantu à a cunnessione attuale.
  • Strumenti di correzione d'errori chì minimizanu i ritardi per via di a retransmissione di i pacchetti persi. L'usu di codici speciali di currezzione d'errore à livellu di pacchetti per riduce e situazioni chì richiedenu a ritrasmissione di dati di pacchetti persi.
  • I limiti di blocchi criptografici sò allineati à i limiti di pacchetti QUIC, riducendu l'effettu di a perdita di pacchetti nantu à a decodifica di u cuntenutu di i pacchetti successivi
  • Nisun prublema cù u bloccu di a fila TCP
  • Supportu per l'identificatore di cunnessione, chì riduce u tempu per stabilisce una cunnessione per i clienti mobili
  • Capacità di cunnette meccanismi avanzati per cuntrullà a sovraccarica di cunnessione
  • Aduprà a tecnica di predizione di a larghezza di banda in ogni direzzione per assicurà l'intensità di spedizione di pacchetti ottimali, impedendu ch'ellu ghjunghje à un statu di congestione in cui si osserva a perdita di pacchetti
  • Prestazioni notevuli è guadagni di prestazione nantu à TCP. Per i servizii video cum'è YouTube, QUIC hà mostratu una riduzione di 30% in e operazioni di ri-bufferu quandu si guardanu video.

Cume implementà u modulu per supportà HTTP / 3 in NGINX?

Per quelli chì sò interessati à pudè implementà stu modulu nantu à u so servitore, Puderanu fà seguendu l'istruzzioni chì spartemu quì sottu.

Per compilallu, anu solu da scaricà u patch per nginx 1.16 è u codice di bibliuteca 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

È compilemu NGINX cù supportu HTTP / 3 attivatu:

 ./configure                                 \

--prefix=$PWD                           \

--with-http_ssl_module                  \

--with-http_v2_module                   \

--with-http_v3_module                   \

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

--with-quiche=../quiche

make

Durante a compilazione, u supportu TLS deve esse basatu nantu à a libreria BoringSSL ("–with-openssl = .. / quiche / deps / boringssl"), l'usu di OpenSSL ùn hè ancu supportatu.

Per accettà e cunnessioni in a cunfigurazione, averanu da aghjunghje a direttiva ascoltatore cù u flag "quic".


U cuntenutu di l'articulu aderisce à i nostri principii di etica edituriale. Per signalà un errore cliccate quì.

Sianu the first to comment

Lasciate u vostru cummentariu

U vostru indirizzu email ùn esse publicatu.

*

*

  1. Responsabile di i dati: Miguel Ángel Gatón
  2. Scopu di i dati: Cuntrolla SPAM, gestione di cumenti.
  3. Legitimazione: U vostru accunsentu
  4. Cumunicazione di i dati: I dati ùn seranu micca cumunicati à terzi, eccettu per obbligazione legale.
  5. Archiviazione di dati: Base di dati ospitata da Occentus Networks (UE)
  6. Diritti: In ogni mumentu pudete limità, recuperà è cancellà e vostre informazioni.