Nag-aalok ang Cloudflare ng isang module upang suportahan ang HTTP / 3 sa NGINX

CloudFlare

Naghanda ang Cloudflare ng isang module upang magbigay ng suporta para sa HTTP / 3 na protocol sa NGINX. Tapos na ang modyul sa anyo ng isang iglap sa quiche library binuo sa Cloudflare kasama ang pagpapatupad ng QUIC at HTTP / 3 transport protokol. Ang quiche code ay nakasulat sa Rust, ngunit ang module para sa NGINX ay nakasulat sa C at ina-access ang library sa pamamagitan ng mga dynamic na link. Ang mga oras ng pagpapatakbo ay bukas sa ilalim ng lisensya ng BSD.

Mula sa client software, Ang suporta ng HTTP / 3 ay naidagdag na sa mga pag-eksperimentong build ng Chrome Canary at ang curl utility. Sa panig ng server, kinakailangan ng paggamit ng nakahiwalay na pagpapatupad ng pagsubok na may limitadong mga kakayahan. Ang kakayahang hawakan ang HTTP / 3 sa nginx makabuluhang gawing simple ang paglawak ng mga server na may suporta sa HTTP / 3 at gagawin nitong mas madaling ma-access ang pagpapatupad ng pagsubok ng bagong protocol.

Ang HTTP / 3 ay nag-standardize sa paggamit ng QUIC na protokol bilang isang transportasyon para sa HTTP / 2. Ang QUIC protocol ay binuo ng Google bilang isang kahalili sa TCP + TLS para sa Web, sa gayon nilalayon na malutas ang mga problema sa isang mahabang oras ng pag-install at koordinasyon ng mga compound sa TCP at pagkaantala sa pag-aalis ng pagkawala ng packet sa panahon ng paghahatid ng data. Ang QUIC ay isang plug-in sa UDP protocol na sumusuporta sa multiplexing ng maraming koneksyon at nagbibigay ng mga pamamaraan ng pag-encrypt na katumbas ng TLS / SSL.

Kabilang sa mga pangunahing katangian ng QUIC na namumukod-tangi:

  • Mataas na seguridad, katulad ng TLS (sa katunayan, nagbibigay ang QUIC ng kakayahang gumamit ng TLS sa paglipas ng UDP).
  • Pagkontrol sa daloy ng integridad na pumipigil sa pagkawala ng packet.
  • Ang kakayahang magtatag ng isang koneksyon kaagad (0-RTT, sa halos 75% ng mga kaso, ang data ay maaaring mailipat kaagad pagkatapos maipadala ang packet ng pag-setup ng koneksyon) at matiyak ang kaunting pagkaantala sa pagitan ng pagpapadala ng isang kahilingan at pagtanggap ng tugon (RTT, Round Trip Time) .
  • Hindi gumagamit ng parehong numero ng pagkakasunud-sunod kapag muling nagpapadala ng isang packet, na iniiwasan ang kalabuan sa pagtukoy ng mga natanggap na packet at inaalis ang mga timeout.
  • Ang pagkawala ng isang packet ay nakakaapekto sa paghahatid ng stream lamang na nauugnay dito at hindi hihinto ang paghahatid ng data sa mga stream na ipinadala nang kahanay sa kasalukuyang koneksyon.
  • Mga tool sa pagwawasto ng error na minimize ang mga pagkaantala dahil sa muling paghahatid ng mga nawalang packet. Ang paggamit ng mga espesyal na packet-level error code sa pagwawasto upang mabawasan ang mga sitwasyon na nangangailangan ng muling pagpapadala ng nawalang data ng packet.
  • Ang mga hangganan ng Cryptographic block ay nakahanay sa mga hangganan ng packet ng QUIC, binabawasan ang epekto ng pagkawala ng packet sa pag-decode ng nilalaman ng mga kasunod na packet
  • Walang problema sa pag-block sa pila ng TCP
  • Suporta para sa pagkakakilanlan ng koneksyon, na binabawasan ang oras upang magtatag ng isang muling koneksyon para sa mga mobile client
  • Kakayahang ikonekta ang mga advanced na mekanismo upang makontrol ang labis na karga ng koneksyon
  • Gamit ang pamamaraan ng paghula ng bandwidth sa bawat direksyon upang matiyak ang pinakamainam na intensity ng pagpapasa ng packet, pinipigilan itong maabot ang isang estado ng kasikipan kung saan sinusunod ang pagkawala ng packet.
  • Kapansin-pansin na mga nakuha sa pagganap at pagganap sa TCP. Para sa mga serbisyo sa video tulad ng YouTube, ang QUIC ay nagpakita ng 30% na pagbawas sa re-buffering na operasyon kapag nanonood ng mga video.

Paano ipatupad ang module upang suportahan ang HTTP / 3 sa NGINX?

Para sa mga interesadong maipatupad ang modyul na ito sa kanilang server, Magagawa nila ito sa pamamagitan ng pagsunod sa mga tagubiling ibinabahagi namin sa ibaba.

Upang ipunin ito, kailangan lang nilang i-download ang patch para sa nginx 1.16 at ang code ng library ng 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

At pinagsasama namin ang NGINX na pinagana ang suporta sa HTTP / 3:

 ./configure                                 \

--prefix=$PWD                           \

--with-http_ssl_module                  \

--with-http_v2_module                   \

--with-http_v3_module                   \

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

--with-quiche=../quiche

make

Sa panahon ng pagtitipon, ang suporta ng TLS ay dapat batay sa BoringSSL library ("–with-openssl = .. / quiche / deps / boringssl"), ang paggamit ng OpenSSL ay hindi pa suportado.

Upang tanggapin ang mga koneksyon sa pagsasaayos, kakailanganin nilang idagdag ang tagapamahala ng tagapakinig gamit ang "quic" flag.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.