Introducerad hinsightd HTTP-server med Linux io_uring-undersystem

En kompakt hinsightd HTTP-server har publicerats, känd för att använda det asynkrona I/O-gränssnittet io_uring som tillhandahålls i Linux-kärnan. Servern stöder HTTP/1.1-protokollet och är designad för låg resursförbrukning samtidigt som den ger välbehövlig funktionalitet. Till exempel stöder hinsightd TLS, omvänd proxy (rproxy), cachning av dynamiskt genererat innehåll i det lokala filsystemet, direktdatakomprimering, anslutningsfri omstart, anslutning av dynamiska begäranhanterare med FastCGI- och CGI-mekanismer. Projektkoden är skriven i C och distribueras under BSD-licensen.

För att bearbeta konfigurationen, skriva tillägg och skapa förfrågningshanterare tillhandahålls möjligheten att använda Lua-språket, medan sådana hanterare kan definieras direkt i serverns konfigurationsfil. I form av plugins implementeras funktioner som att ändra loggningsformatet, länka enskilda loggar till virtuella värdar, definiera en lastbalanseringsstrategi, HTTP-autentisering, URL-omskrivning och schemalagt schemalagt arbete (till exempel uppdatering av Let's Encrypt-certifikat). form av plugins.

Servern levereras med ett bibliotek för att integrera hinsightd-funktionalitet i dina applikationer. Hinsightd innehåller ä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 cirka 200KB kompilerad (100KB körbart och 100KB delat bibliotek). Externa beroenden inkluderar endast libc, lua, liburing och zlib, och 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

Lägg en kommentar