Memperkenalkan pelayan HTTP berpandangan jauh menggunakan subsistem Linux io_uring

Pelayan HTTP padat, hinsightd, telah diterbitkan, terkenal kerana penggunaan antara muka I/O tak segerak io_uring yang disediakan dalam kernel Linux. Pelayan menyokong protokol HTTP/1.1 dan direka bentuk untuk penggunaan sumber yang rendah sambil menyediakan fungsi dalam permintaan. Sebagai contoh, hinsightd menyokong TLS, proksi terbalik (rproxy), caching kandungan yang dijana secara dinamik dalam sistem fail tempatan, pemampatan segera data yang dihantar, memulakan semula tanpa memutuskan sambungan yang telah ditetapkan, menyambungkan pengendali permintaan dinamik menggunakan mekanisme FastCGI dan CGI. Kod projek ditulis dalam C dan diedarkan di bawah lesen BSD.

Untuk memproses konfigurasi, menulis penambahan dan mencipta pengendali permintaan, adalah mungkin untuk menggunakan bahasa Lua, dan pengendali tersebut boleh ditakrifkan secara langsung dalam fail konfigurasi pelayan. Dalam bentuk pemalam, ciri seperti menukar format rakaman log, memautkan log individu kepada hos maya, menentukan strategi pengimbangan beban, pengesahan HTTP, penulisan semula URL dan melaksanakan kerja berjadual (contohnya, mengemas kini sijil Let's Encrypt) dilaksanakan.

Pelayan dilengkapi dengan perpustakaan untuk menyepadukan fungsi berpandangan jauh ke dalam aplikasi anda. Hinsightd juga termasuk fungsi bersepadu untuk menghantar permintaan HTTP daripada baris arahan, sebagai contoh, anda boleh menjalankan arahan "hinsightd -d URL" untuk memuatkan halaman. Pelayan sangat padat dan mengambil kira-kira 200KB dalam bentuk terkumpul (fail boleh laku 100KB dan pustaka kongsi 100KB). Kebergantungan luaran termasuk hanya libc, lua, liburing dan zlib, dan secara pilihan openssl/libressl dan ffcall.

Rancangan untuk pembangunan selanjutnya termasuk keupayaan untuk cache fail termampat, pengasingan kotak pasir berdasarkan panggilan sistem penapisan dan menggunakan ruang nama, pembentukan trafik, berbilang benang, pengendalian ralat yang lebih baik dan pengesanan hos maya berasaskan topeng.

Keputusan ujian prestasi sintetik (tanpa pengoptimuman dalam konfigurasi seperti sedia ada) dengan utiliti ab apabila menjalankan 250 dan 500 (dalam kurungan) permintaan selari (β€œab -k -c 250 -n 10000 http://localhost/”):

  • hinsightd/0.9.17 – 63035.01 permintaan sesaat (54984.63)
  • lighttpd/1.4.67 - 53693.29 permintaan sesaat (1613.59)
  • Apache/2.4.54 - 37474.10 permintaan sesaat (34305.55)
  • Caddy/2.6.2 – 35412.02 permintaan sesaat (33995.57)
  • nginx/1.23.2 - 26673.64 permintaan sesaat (26172.73)

Sumber: opennet.ru

Tambah komen