A Cloudflare egy modult kínál a HTTP / 3 támogatására az NGINX-ben

CloudFlare

A Cloudflare előkészített egy modult a HTTP / 3 protokoll támogatásához az NGINX-ben. A modul elkészült pattintás formájában a quiche könyvtárba a Cloudflare-nél fejlesztették ki a QUIC és a HTTP / 3 szállítási protokoll megvalósításával. A quiche kódot Rust-ban írják, de az NGINX modulja C-be van írva, és dinamikus hivatkozásokon keresztül éri el a könyvtárat. A nyitvatartási idő a BSD licenc alapján nyitva áll.

A kliens szoftverből A HTTP / 3 támogatást már hozzáadták a Chrome Canary kísérleti buildjeihez és a göndör segédprogram. A szerver oldalon eddig korlátozott képességű, elszigetelt tesztmegvalósításokra volt szükség. A HTTP / 3 kezelésének képessége nginx-ben jelentősen leegyszerűsíti a HTTP / 3 támogatással rendelkező szerverek telepítését és ez hozzáférhetőbbé teszi az új protokoll tesztes megvalósítását.

A HTTP / 3 szabványosítja a QUIC protokoll használatát mint a HTTP / 2 átvitele. A QUIC protokollt a Google fejlesztette ki a webes TCP + TLS alternatívájaként hosszú távú telepítési és koordinációs összetevőkkel kíván megoldani problémákat a TCP-ben és késlelteti a csomagvesztés megszüntetését az adatátvitel során. A QUIC egy plug-in az UDP protokollhoz, amely támogatja a több kapcsolat multiplexelését, és a TLS / SSL-lel egyenértékű titkosítási módszereket biztosít.

A QUIC kiemelkedő jellemzői közül, amelyek kiemelkednek:

  • Nagy biztonság, hasonló a TLS-hez (valójában a QUIC lehetőséget nyújt a TLS UDP-n keresztüli használatára).
  • Áramlás integritásának vezérlése, amely megakadályozza a csomagok elvesztését.
  • A kapcsolat azonnali létrehozásának képessége (0-RTT, az esetek körülbelül 75% -ában az adatok azonnal továbbíthatók a kapcsolati beállító csomag elküldése után), és minimális késedelem biztosítása a kérés elküldése és a válasz fogadása között (RTT, oda-vissza idő) .
  • Ha ugyanazt a sorozatszámot nem használja a csomagok újratovábbításakor, ez elkerüli a kétértelműséget a fogadott csomagok meghatározásában és kiküszöböli az időkorlátokat.
  • A csomag elvesztése csak a hozzá társított adatfolyam kézbesítését érinti, és nem állítja le az adatátvitelt az aktuális kapcsolaton keresztül párhuzamosan továbbított adatfolyamokban.
  • Hibajavító eszközök, amelyek minimalizálják az elveszett csomagok újraküldése miatti késéseket. Speciális csomagszintű hibajavító kódok használata az elveszett csomagadatok újraküldését igénylő helyzetek csökkentésére.
  • A kriptográfiai blokkok határai igazodnak a QUIC csomaghatárokhoz, ezzel csökkentve a csomagvesztés hatását a következő csomagok tartalmának dekódolására
  • Nincs probléma a TCP-sor blokkolásával
  • Támogatja a kapcsolati azonosítót, amely lerövidíti az újracsatlakozás létrehozásának idejét a mobil kliensek számára
  • Fejlett mechanizmusok csatlakoztatásának lehetősége a kapcsolat túlterhelésének szabályozására
  • A sávszélesség mindkét irányban történő előrejelzésének technikája az optimális csomag-továbbítási intenzitás biztosítása érdekében, megakadályozva a torlódási állapot elérését, amelyben a csomagvesztés figyelhető meg
  • Figyelemre méltó teljesítmény és teljesítménynövekedés a TCP-vel szemben. Az olyan videószolgáltatások esetében, mint a YouTube, a QUIC 30% -kal csökkentette az új pufferelési műveleteket videók megtekintése közben.

Hogyan lehet a modult megvalósítani a HTTP / 3 támogatására az NGINX-ben?

Azok számára, akik érdekeltek abban, hogy ezt a modult a szerverükön megvalósítsák, Megtehetik az alábbiakban megosztott utasítások követésével.

Összeállításához csak le kell tölteniük az nginx 1.16 javítását és a quiche könyvtár kódját.

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

És lefordítjuk az NGINX-t, engedélyezve a HTTP / 3 támogatást:

 ./configure                                 \

--prefix=$PWD                           \

--with-http_ssl_module                  \

--with-http_v2_module                   \

--with-http_v3_module                   \

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

--with-quiche=../quiche

make

A fordítás során a TLS-támogatásnak a BoringSSL könyvtáron kell alapulnia ("–with-openssl = .. / quiche / deps / boringssl"), az OpenSSL használata még nem támogatott.

A kapcsolatok elfogadásához a konfigurációban hozzá kell adniuk a hallgatói irányelvet a "quic" zászlóval.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.