En kompakt HTTP-server, hinsightd, har publicerats, känd för sin användning av kärnans tillhandahållna Linux io_uring asynkront in-/utdatagränssnitt. Servern stöder HTTP/1.1-protokollet och är utformad för att vara lättviktig samtidigt som den erbjuder populär funktionalitet. Till exempel stöder hinsightd TLS, omvänd proxy (rproxy), cachning av dynamiskt genererat innehåll i det lokala filsystemet, komprimering av returnerade data i realtid, omstart utan att bryta etablerade anslutningar och aktivering av dynamiska förfrågningshanterare med hjälp av FastCGI- och CGI-mekanismer. Projektkoden är skriven i C och distribueras under BSD-licensen.
Möjligheten att använda språket Lua tillhandahålls för att bearbeta konfiguration, skriva tillägg och skapa förfrågningshanterare, medan sådana hanterare kan definieras direkt i filen. serverkonfigurationerPlugins tillhandahåller funktioner som att ändra loggformat, länka enskilda loggar till virtuella värdar, definiera en lastbalanseringsstrategi, HTTP-autentisering, omskrivning av URL och köra schemalagda uppgifter (som att uppdatera Let's Encrypt-certifikat).
Med server Ett bibliotek tillhandahålls för att integrera hinsightd-funktionalitet i dina applikationer. Hinsightd inkluderar även integrerad funktionalitet för att skicka HTTP-förfrågningar från kommandoraden; till exempel, för att ladda en sida kan du köra "hinsightd -d URL". Servern är mycket kompakt och tar upp cirka 200 KB kompilerat utrymme (100 KB körbar fil och 100 KB delat bibliotek). Externa beroenden inkluderar endast libc, lua, liburing och zlib, samt valfritt openssl/libressl och ffcall.
Planer för vidareutveckling inkluderar möjligheten att lagra komprimerade filer i cachen, sandlådeisolering baserad på systemanropsfiltrering och användning av namnutrymmen, bandbreddshantering (trafikformning), multithreading, förbättrad felhantering och definition av virtuella värdar baserade på masker.
Resultaten av syntetisk prestandatestning (utan optimeringar i konfigurationen som den är) av ab-verktyget när du kör 250 och 500 (inom parentes) parallella förfrågningar ("ab -k -c 250 -n 10000 http://localhost/"):
- hinsightd/0.9.17 - 63035.01 förfrågningar per sekund (54984.63)
- lighttpd/1.4.67 - 53693.29 förfrågningar per sekund (1613.59)
- Apache/2.4.54 - 37474.10 förfrågningar per sekund (34305.55)
- Caddy/2.6.2 - 35412.02 förfrågningar per sekund (33995.57)
- nginx/1.23.2 - 26673.64 förfrågningar per sekund (26172.73)
Källa: opennet.ru
