Byl představen HTTP server hinsightd, který využívá Linux subsystém io_uring.

Byl uveden kompaktní HTTP server hinsightd, který se vyznačuje využitím rozhraní pro asynchronní vstup/výstup io_uring, poskytovaného v jádru Linuxu. Server podporuje protokol HTTP/1.1 a je navržen pro nízkou spotřebu prostředků s poskytováním požadované funkčnosti. Například hinsightd podporuje TLS, reverzní proxy (rproxy), caching dynamicky generovaného obsahu v místním FS, on-the-fly kompresi vyvážených dat, restart bez přerušení otevřených spojení a připojení dynamických zpracovatelů požadavků pomocí mechanismů FastCGI a CGI. Kód projektu je napsán v jazyce C a je distribuován pod licencí BSD.

Pro zpracování konfigurace, psaní doplňků a vytváření zpracovatelů požadavků je možná použití jazyka Lua, přičemž takovéto zpracovatele lze definovat přímo v souboru konfigurace serveru. Jako pluginy jsou implementovány schopnosti jako změna formátu zápisu do logu, přiřazení jednotlivých logů k virtuálním hostitelům, definice strategie vyvažování zátěže, HTTP autentizace, přepisování URL a vykonávání plánovaných úloh podle harmonogramu (např. aktualizace certifikátů Let’s Encrypt).

Společně s serverem je dodávána knihovna pro integraci funkcí hinsightd do svých aplikací. Hinsightd také zahrnuje integrovanou funkčnost pro odesílání HTTP požadavků z příkazové řádky, například pro načtení stránky lze provést příkaz „hinsightd -d URL“. Server je velmi kompaktní a v zkompilované formě zaujímá přibližně 200KB (100KB spustitelný soubor a 100KB sdílená knihovna). Mezi externími závislostmi jsou pouze libc, lua, liburing a zlib, stejně jako volitelně openssl/libressl a ffcall.

Plány na další rozvoj zahrnují možnost ukládání ve vyrovnávací paměti komprimovaných souborů, sandboxovou izolaci na základě filtrování systémových volání a používání prostorů jmen, řízení šířky pásma (traffic shaping), vícetrážkovost, vylepšené zpracování chyb a definici virtuálních hostitelů na základě masek.

Výsledky syntetického testování výkonu (bez optimalizací v konfiguraci tak, jak je) pomocí utilitky ab při spuštění 250 a 500 (v závorkách) paralelních požadavků („ab -k -c 250 -n 10000 http://localhost/“):

  • hinsightd/0.9.17 — 63035.01 požadavků za sekundu (54984.63)
  • lighttpd/1.4.67 — 53693.29 požadavků za sekundu (1613.59)
  • Apache/2.4.54 — 37474.10 požadavků za sekundu (34305.55)
  • Caddy/2.6.2 — 35412.02 požadavků za sekundu (33995.57)
  • nginx/1.23.2 — 26673.64 požadavků za sekundu (26172.73)

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster