Cloudflare menawarkan modul untuk menyokong HTTP / 3 di NGINX

CloudFlare

Cloudflare telah menyiapkan modul untuk memberikan sokongan untuk protokol HTTP / 3 di NGINX. Modul selesai dalam bentuk snap di perpustakaan quiche dibangunkan di Cloudflare dengan pelaksanaan protokol pengangkutan QUIC dan HTTP / 3. Kod quiche ditulis dalam Rust, tetapi modul untuk NGINX ditulis dalam C dan mengakses perpustakaan melalui pautan dinamik. Waktu operasi dibuka di bawah lesen BSD.

Dari perisian pelanggan, Sokongan HTTP / 3 telah ditambahkan ke build eksperimen Chrome Canary dan utiliti keriting. Di sisi pelayan, penggunaan implementasi ujian terpencil yang mempunyai kemampuan terhad setakat ini diperlukan. Keupayaan untuk mengendalikan HTTP / 3 dalam nginx akan memudahkan penyebaran pelayan dengan sokongan HTTP / 3 dengan ketara dan itu akan menjadikan pelaksanaan ujian protokol baru lebih mudah dicapai.

HTTP / 3 menyeragamkan penggunaan protokol QUIC sebagai pengangkutan untuk HTTP / 2. Protokol QUIC dikembangkan oleh Google sebagai alternatif kepada TCP + TLS untuk Web, dengan demikian bermaksud menyelesaikan masalah dengan pemasangan dan koordinasi lama dalam TCP dan kelewatan penghapusan kehilangan paket semasa penghantaran data. QUIC adalah pemalam ke protokol UDP yang menyokong multiplexing pelbagai sambungan dan menyediakan kaedah penyulitan yang setara dengan TLS / SSL.

Antara ciri utama QUIC yang menonjol:

  • Keselamatan tinggi, serupa dengan TLS (sebenarnya, QUIC memberikan kemampuan untuk menggunakan TLS berbanding UDP).
  • Kawalan integriti aliran yang mencegah kehilangan paket.
  • Kemampuan untuk membuat sambungan dengan cepat (0-RTT, dalam sekitar 75% kes, data dapat dipindahkan segera setelah mengirim paket penyiapan sambungan) dan memastikan penundaan minimum antara mengirim permintaan dan menerima respons (RTT, Waktu Perjalanan Balik) .
  • Tidak menggunakan nombor urutan yang sama semasa menghantar semula paket, yang mengelakkan kekaburan dalam menentukan paket yang diterima dan menghilangkan masa tamat.
  • Kehilangan paket mempengaruhi penghantaran hanya aliran yang berkaitan dengannya dan tidak menghentikan penghantaran data dalam aliran yang dihantar secara selari melalui sambungan semasa.
  • Alat pembetulan ralat yang meminimumkan kelewatan kerana penghantaran semula paket yang hilang. Penggunaan kod pembetulan ralat tahap paket khas untuk mengurangkan situasi yang memerlukan penghantaran semula data paket yang hilang.
  • Batasan blok kriptografi diselaraskan dengan sempadan paket QUIC, mengurangkan kesan kehilangan paket pada penyahkodan kandungan paket berikutnya
  • Tidak ada masalah dengan menyekat barisan TCP
  • Sokongan untuk pengecam sambungan, yang mengurangkan masa untuk membuat penyambungan semula untuk pelanggan mudah alih
  • Keupayaan untuk menghubungkan mekanisme canggih untuk mengawal beban sambungan
  • Menggunakan teknik meramalkan lebar jalur di setiap arah untuk memastikan intensiti penerusan paket yang optimum, mencegahnya mencapai keadaan kesesakan di mana kehilangan paket diperhatikan
  • Keuntungan dan prestasi yang luar biasa berbanding TCP. Untuk perkhidmatan video seperti YouTube, QUIC menunjukkan pengurangan 30% dalam operasi penyanggaan semula ketika menonton video.

Bagaimana cara melaksanakan modul untuk menyokong HTTP / 3 di NGINX?

Bagi mereka yang berminat untuk dapat melaksanakan modul ini di pelayan mereka, Mereka boleh melakukannya dengan mengikuti arahan yang kami kongsikan di bawah.

Untuk menyusunnya, mereka hanya perlu memuat turun patch untuk nginx 1.16 dan kod perpustakaan 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

Dan kami menyusun NGINX dengan sokongan HTTP / 3 diaktifkan:

 ./configure                                 \

--prefix=$PWD                           \

--with-http_ssl_module                  \

--with-http_v2_module                   \

--with-http_v3_module                   \

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

--with-quiche=../quiche

make

Semasa penyusunan, sokongan TLS harus berdasarkan perpustakaan BoringSSL ("–with-openssl = .. / quiche / deps / boringssl"), penggunaan OpenSSL belum disokong.

Untuk menerima sambungan dalam konfigurasi, mereka perlu menambahkan arahan pendengar dengan bendera "quic".


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.