Cloudflare menawarkan modul untuk mendukung HTTP / 3 di NGINX

cloudflare

Cloudflare telah menyiapkan modul untuk memberikan dukungan untuk protokol HTTP / 3 di NGINX. Modul selesai dalam bentuk snap di perpustakaan quiche dikembangkan di Cloudflare dengan implementasi protokol transport QUIC dan HTTP / 3. Kode quiche ditulis dengan Rust, tetapi modul untuk NGINX ditulis dalam C dan mengakses perpustakaan melalui tautan dinamis. Jam operasi terbuka di bawah lisensi BSD.

Dari perangkat lunak klien, Dukungan HTTP / 3 telah ditambahkan ke versi eksperimental Chrome Canary dan utilitas curl. Di sisi server, penggunaan implementasi pengujian terisolasi yang memiliki kemampuan terbatas sejauh ini diperlukan. Kemampuan untuk menangani HTTP / 3 di nginx akan menyederhanakan penyebaran server secara signifikan dengan dukungan HTTP / 3 dan itu akan membuat implementasi uji coba protokol baru lebih mudah diakses.

HTTP / 3 menstandarkan penggunaan protokol QUIC sebagai transportasi untuk HTTP / 2. Oleh karena itu, protokol QUIC dikembangkan oleh Google sebagai alternatif dari TCP + TLS untuk Web bermaksud untuk memecahkan masalah dengan waktu yang lama dari instalasi dan koordinasi senyawa di TCP dan penundaan penghapusan paket yang hilang selama transmisi data. QUIC adalah plug-in ke protokol UDP yang mendukung multiplexing dari beberapa koneksi dan menyediakan metode enkripsi yang setara dengan TLS / SSL.

Di antara karakteristik utama QUIC yang menonjol:

  • Keamanan tinggi, mirip dengan TLS (sebenarnya, QUIC menyediakan kemampuan untuk menggunakan TLS melalui UDP).
  • Kontrol integritas aliran yang mencegah kehilangan paket.
  • Kemampuan untuk membuat koneksi secara instan (0-RTT, dalam sekitar 75% kasus, data dapat ditransfer segera setelah mengirim paket pengaturan koneksi) dan memastikan penundaan minimal antara mengirim permintaan dan menerima respons (RTT, Round Trip Time) .
  • Tidak menggunakan nomor urut yang sama saat mentransmisikan ulang sebuah paket, yang menghindari ambiguitas dalam menentukan paket yang diterima dan menghilangkan batas waktu.
  • Kehilangan paket memengaruhi pengiriman hanya aliran yang terkait dengannya dan tidak menghentikan pengiriman data dalam aliran yang ditransmisikan secara paralel melalui koneksi saat ini.
  • Alat koreksi kesalahan yang meminimalkan penundaan karena transmisi ulang paket yang hilang. Penggunaan kode koreksi kesalahan tingkat paket khusus untuk mengurangi situasi yang memerlukan transmisi ulang data paket yang hilang.
  • Batas blok kriptografi diselaraskan dengan batas paket QUIC, mengurangi efek kehilangan paket pada decoding konten paket berikutnya
  • Tidak ada masalah dengan memblokir antrian TCP
  • Dukungan untuk pengenal koneksi, yang mengurangi waktu untuk membuat koneksi ulang untuk klien seluler
  • Kemampuan untuk menghubungkan mekanisme lanjutan untuk mengontrol kelebihan koneksi
  • Menggunakan teknik memprediksi bandwidth di setiap arah untuk memastikan intensitas penerusan paket yang optimal, mencegahnya mencapai keadaan kemacetan di mana packet loss diamati
  • Peningkatan kinerja dan kinerja luar biasa atas TCP. Untuk layanan video seperti YouTube, QUIC menunjukkan pengurangan 30% dalam operasi buffering ulang saat menonton video.

Bagaimana cara mengimplementasikan modul untuk mendukung HTTP / 3 di NGINX?

Bagi mereka yang tertarik untuk dapat mengimplementasikan modul ini di server mereka, Mereka dapat melakukannya dengan mengikuti petunjuk yang kami bagikan di bawah.

Untuk mengkompilasinya, mereka hanya perlu mengunduh patch untuk nginx 1.16 dan kode 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 mengompilasi NGINX dengan dukungan 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

Selama kompilasi, dukungan TLS harus didasarkan pada pustaka BoringSSL ("–with-openssl = .. / quiche / deps / boringssl"), penggunaan OpenSSL belum didukung.

Untuk menerima koneksi dalam konfigurasi, mereka perlu menambahkan direktif listener dengan tanda "quic".


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.