Ngenalke server HTTP hinsightd nggunakake subsistem Linux io_uring

Server HTTP kompak, hinsightd, wis diterbitake, misuwur amarga nggunakake antarmuka I/O asinkron io_uring sing kasedhiya ing kernel Linux. Server ndhukung protokol HTTP/1.1 lan dirancang kanggo konsumsi sumber daya sing sithik nalika nyedhiyakake fungsi sing dikarepake. Contone, hinsightd ndhukung TLS, reverse proxying (rproxy), caching isi digawe dinamis ing sistem file lokal, on-the-fly komprèsi data ditularaké, miwiti maneh tanpa break sambungan mapan, nyambungake panyuwun panjalukan dinamis nggunakake FastCGI lan mekanisme CGI. Kode proyek ditulis ing C lan disebarake miturut lisensi BSD.

Kanggo ngolah konfigurasi, nulis tambahan lan nggawe panjaluk panjaluk, bisa nggunakake basa Lua, lan pawang kasebut bisa ditetepake langsung ing file konfigurasi server. Ing wangun plugin, fitur kayata ngganti format rekaman log, ngubungake log individu menyang host virtual, nemtokake strategi keseimbangan beban, otentikasi HTTP, nulis ulang URL lan nindakake karya sing dijadwalake (contone, nganyari sertifikat Ayo Encrypt).

Server dilengkapi perpustakaan kanggo nggabungake fungsi hinsightd menyang aplikasi sampeyan. Hinsightd uga kalebu fungsi terpadu kanggo ngirim panjalukan HTTP saka baris printah, contone, sampeyan bisa mbukak printah "hinsightd -d URL" kanggo mbukak kaca. Server kasebut kompak banget lan mbutuhake kira-kira 200KB ing wangun kompilasi (file eksekusi 100KB lan perpustakaan bareng 100KB). Ketergantungan eksternal mung kalebu libc, lua, liburing lan zlib, lan opsional openssl/libersl lan ffcall.

Rencana kanggo pangembangan luwih lanjut kalebu kemampuan kanggo nyimpen file sing dikompres, isolasi kothak wedhi adhedhasar panggilan sistem nyaring lan nggunakake spasi jeneng, mbentuk lalu lintas, multi-threading, penanganan kesalahan sing luwih apik lan deteksi host virtual berbasis topeng.

Asil tes kinerja sintetik (tanpa optimasi ing konfigurasi kaya apa) kanthi utilitas ab nalika nglakokake 250 lan 500 (ing kurung) panjaluk paralel ("ab -k -c 250 -n 10000 http://localhost/"):

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

Source: opennet.ru

Add a comment