En kompakt HTTP-server, hinsightd, er blevet udgivet, kendt for sin brug af kernens leverede Linux io_uring asynkron input/output-grænseflade. Serveren understøtter HTTP/1.1-protokollen og er designet til at være let, samtidig med at den leverer populær funktionalitet. For eksempel understøtter hinsightd TLS, reverse proxying (rproxy), caching af dynamisk genereret indhold i det lokale filsystem, on-the-fly komprimering af returnerede data, genstart uden at afbryde etablerede forbindelser og aktivering af dynamiske anmodningshåndterere ved hjælp af FastCGI- og CGI-mekanismer. Projektkoden er skrevet i C og distribueret under BSD-licensen.
Muligheden for at bruge Lua-sproget er tilgængelig til behandling af konfiguration, skrivning af tilføjelser og oprettelse af anmodningshåndterere, mens sådanne håndterere kan defineres direkte i filen. serverkonfigurationerPlugins tilbyder funktioner som ændring af logformat, linkning af individuelle logs til virtuelle værter, definition af en load balancing-strategi, HTTP-godkendelse, URL-omskrivning og udførelse af planlagte opgaver (f.eks. opdatering af Let's Encrypt-certifikater).
Med server Der findes et bibliotek til integration af hinsightd-funktionalitet i dine applikationer. Hinsightd inkluderer også integreret funktionalitet til at sende HTTP-anmodninger fra kommandolinjen; for eksempel kan du køre "hinsightd -d URL" for at indlæse en side. Serveren er meget kompakt og optager cirka 200 KB kompileret plads (100 KB eksekverbar og 100 KB delt bibliotek). Eksterne afhængigheder omfatter kun libc, lua, liburing og zlib, samt valgfrit openssl/libressl og ffcall.
Planer for yderligere udvikling omfatter muligheden for at cache komprimerede filer, sandbox-isolering baseret på filtrering af systemkald og brug af navneområder, trafikformning, multi-threading, forbedret fejlhåndtering og maskebaseret virtuel værtsdetektion.
Resultater af syntetisk ydeevnetest (uden optimeringer i konfigurationen som den er) med ab-værktøjet, når du kører 250 og 500 (i parentes) parallelle anmodninger ("ab -k -c 250 -n 10000 http://localhost/"):
- hinsightd/0.9.17 – 63035.01 anmodninger pr. sekund (54984.63)
- lighttpd/1.4.67 - 53693.29 anmodninger pr. sekund (1613.59)
- Apache/2.4.54 - 37474.10 anmodninger pr. sekund (34305.55)
- Caddy/2.6.2 – 35412.02 anmodninger pr. sekund (33995.57)
- nginx/1.23.2 - 26673.64 anmodninger pr. sekund (26172.73)
Kilde: opennet.ru
