Cloudflare on NGINX-is HTTP / 3-protokolli toetamiseks ette valmistanud mooduli. Moodul on valmis kiibi näol quiche raamatukogus välja töötatud Cloudflare'is QUIC ja HTTP / 3 transpordiprotokolli juurutamisega. Kiiruskood on kirjutatud Rustis, kuid NGINX-i moodul on kirjutatud C-s ja pääseb teeki dünaamiliste linkide kaudu. Töötunnid on avatud BSD litsentsi alusel.
Kliendi tarkvarast HTTP / 3 tugi on Chrome Canary katselistele järkudele juba lisatud ja lokkide utiliit. Serveri poolelt on seni nõutud piiratud võimalustega isoleeritud testrakenduste kasutamist. Võimalus HTTP / 3 haldamiseks nginxis lihtsustab oluliselt HTTP / 3 toega serverite juurutamist ja see muudab uue protokolli testimise lihtsamaks.
HTTP / 3 standardiseerib QUIC-protokolli kasutamise HTTP / 2 transpordina. Google on QUIC-protokolli välja töötanud alternatiivina veebi TCP + TLS-ile kavatseb TCP-s pikka aega installida ja kooskõlastada ühendeid ja viivitab pakettide kadumise kõrvaldamisega andmeedastuse ajal. QUIC on UDP-protokolli pistikprogramm, mis toetab mitme ühenduse multipleksimist ja pakub TLS / SSL-iga samaväärseid krüptimismeetodeid.
QUICi põhiomaduste hulgas, mis silma paistavad:
- Kõrge turvalisus, sarnaselt TLS-ile (tegelikult pakub QUIC võimalust kasutada TLS-i UDP kaudu).
- Voo terviklikkuse kontroll, mis hoiab ära pakettide kadumise.
- Võimalus luua ühendus koheselt (0-RTT, umbes 75% juhtudest saab andmeid edastada kohe pärast ühenduse seadistuspaketi saatmist) ja tagada minimaalsed viivitused päringu saatmise ja vastuse saamise vahel (RTT, edasi-tagasi aeg) .
- Paketi uuesti edastamisel sama järjekorranumbri mittekasutamine, mis väldib vastuvõetavate pakettide määramisel ebaselgust ja välistab ajalõpu.
- Paketi kaotamine mõjutab ainult sellega seotud voo edastamist ja ei peata andmete edastamist paralleelselt praeguse ühenduse kaudu edastatud voogudes.
- Vigade parandamise tööriistad, mis minimeerivad kaotatud pakettide uuesti edastamisest tingitud viivitusi. Spetsiaalsete paketitaseme tõrkeotsingu koodide kasutamine olukordade vähendamiseks, mis nõuavad kadunud pakettandmete uuesti edastamist.
- Krüptograafiliste plokkide piirid on joondatud QUIC-i pakettide piiridega, vähendades pakettide kadumise mõju järgnevate pakettide sisu dekodeerimisele
- TCP järjekorra blokeerimisega pole probleeme
- Toetus ühenduse identifikaatorile, mis vähendab mobiiliklientide jaoks ühenduse loomise aega
- Võimalus ühendada täiustatud mehhanisme ühenduse ülekoormuse juhtimiseks
- Kasutades ribalaiuse prognoosimise tehnikat igas suunas, et tagada pakettide optimaalne edastamise intensiivsus, takistades selle jõudmist ülekoormatuse olekusse, kus täheldatakse pakettide kadu
- Tähelepanuväärne jõudlus ja jõudluse kasv TCP-ga võrreldes. Videoteenuste, nagu YouTube, puhul näitas QUIC videote vaatamisel 30% puhverdamistoimingute vähenemist.
Kuidas rakendada moodulit HTTP / 3 toetamiseks NGINX-is?
Neile, kes on huvitatud selle mooduli juurutamisest oma serverisse, Nad saavad seda teha, järgides alltoodud juhiseid.
Selle koostamiseks nad peavad lihtsalt nginx 1.16 plaastri alla laadima ja quiche raamatukogu kood.
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
Ja koostame NGINX-i, kui HTTP / 3 tugi on lubatud:
./configure \ --prefix=$PWD \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_v3_module \ --with-openssl=../quiche/deps/boringssl \ --with-quiche=../quiche make
Kompileerimise ajal peaks TLS-tugi põhinema BoringSSL-i teegil ("–with-openssl = .. / quiche / deps / boringssl"), OpenSSL-i kasutamist veel ei toetata.
Konfiguratsioonis ühenduste aktsepteerimiseks peavad nad lisama kuulaja direktiivi "quic" lipuga.