Predstavljen je HTTP-server hinsightd, ki uporablja podsystems Linux io_uring.

Objavljen je kompaktni HTTP server hinsightd, poznat po korišćenju asinhronog ulaza/izlaza io_uring koji je ugrađen u Linux kernel. Server podržava protokol HTTP/1.1 i dizajniran je za nizak trošak resursa uz pružanje potrebne funkcionalnosti. Na primer, hinsightd podržava TLS, reverzno proxy-iranje (rproxy), keširanje dinamički generisanog sadržaja na lokalnom disku, kompresiju podataka u letu, ponovno pokretanje bez prekida uspostavljenih veze, povezivanje dinamičkih obradivača zahteva pomoću mehanizama FastCGI i CGI. Kod projekta napisan je na C jeziku i distribuira se pod BSD licencom.

Za obradu konfiguracije, pisanje dodataka i kreiranje obradivača zahteva omogućena je upotreba Lua jezika, pri čemu se takvi obradivači mogu definisati direktno u datoteci konfiguracije strežnika. U obliku ekstenzija implementirane su mogućnosti kao što su promena formata zapisa u log, povezivanje pojedinačnih logova sa virtuelnim hostovima, definisanje strategije balansiranja opterećenja, HTTP autentifikacija, prepisivanje URL-a i izvršavanje planiranih zadataka prema rasporedu (na primer, obnova Let’s Encrypt sertifikata).

Skupaj z serverom isporučuje se biblioteka za integraciju funkcija hinsightd u vlastite aplikacije. Hinsightd takođe uključuje integrisanu funkcionalnost za slanje HTTP zahteva iz komandne linije, na primer, za učitavanje stranice može se izvršiti komanda „hinsightd -d URL“. Server je veoma kompaktan i zauzima oko 200KB u kompajliranom obliku (100KB izvršna datoteka i 100KB deljena biblioteka). Među spoljnim zavisnostima su samo libc, lua, liburing i zlib, kao i opciono openssl/libressl i ffcall.

Među planovima za dalji razvoj pominje se mogućnost keširanja komprimovanih datoteka, sandbox izolacija zasnovana na filtriranju sistemskih poziva i korišćenju prostora imena, upravljanje propusnošću (traffic shaping), višedretvenost, poboljšana obrada grešaka i definisanje virtuelnih hostova na osnovu maski.

Rezultati sintetičkog testiranja performansi (bez optimizacija u konfiguraciji kakva jeste) pomoću alata ab pri pokretanju 250 i 500 (u zagradi) paralelnih zahteva („ab -k -c 250 -n 10000 http://localhost/“):

  • hinsightd/0.9.17 — 63035.01 zahteva u sekundi (54984.63)
  • lighttpd/1.4.67 — 53693.29 zahtevov na sekundo (1613.59)
  • Apache/2.4.54 — 37474.10 zahtevov na sekundo (34305.55)
  • Caddy/2.6.2 — 35412.02 zahtevov na sekundo (33995.57)
  • nginx/1.23.2 — 26673.64 zahtevov na sekundo (26172.73)

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster