De HTTP-server hinsightd is gepresenteerd, die gebruik maakt van de Linux-io_uring-subsysteem.

De compacte HTTP-server hinsightd is gepubliceerd en opmerkelijk vanwege het gebruik van de in de Linux-kernel beschikbare io_uring asynchronous I/O-interface. De server ondersteunt het HTTP/1.1-protocol en is ontworpen voor een laag verbruik van middelen, terwijl het de gevraagde functionaliteit biedt. Zo ondersteunt hinsightd TLS, reverse proxying (rproxy), caching van dynamisch gegenereerde inhoud in het lokale bestandssysteem, on-the-fly compressie van verzonden gegevens, herstart zonder de actieve verbindingen te onderbreken, en het aansluiten van dynamische request handlers via FastCGI- en CGI-mechanismen. De projectcode is geschreven in C en wordt verspreid onder de BSD-licentie.

Voor het verwerken van configuraties, het schrijven van extensies en het creƫren van request handlers is het mogelijk om de Lua-taal te gebruiken, waarbij dergelijke handlers direct in het bestand kunnen worden gedefinieerd. de serverconfiguratieFunctionaliteiten zoals het wijzigen van het logformat, het koppelen van afzonderlijke logs aan virtuele hosts, het definiƫren van load balancing-strategieƫn, HTTP-authenticatie, URL-herschrijving en het uitvoeren van geplande taken (bijvoorbeeld het vernieuwen van Let's Encrypt-certificaten) zijn gerealiseerd in de vorm van plug-ins.

Samen met server wordt een bibliotheek meegeleverd om de functies van hinsightd in eigen applicaties te integreren. Hinsightd bevat ook geĆÆntegreerde functionaliteit voor het verzenden van HTTP-verzoeken vanuit de opdrachtregel; bijvoorbeeld om een pagina te laden kan de opdracht "hinsightd -d URL" worden uitgevoerd. De server is zeer compact en in gecompileerde vorm ongeveer 200KB groot (100KB uitvoerbare bestand en 100KB gedeelde bibliotheek). Onder de externe afhankelijkheden bevinden zich alleen libc, lua, liburing en zlib, en optioneel openssl/libressl en ffcall.

De plannen voor verdere ontwikkeling omvatten de mogelijkheid om gecomprimeerde bestanden in de cache op te slaan, sandbox-isolatie op basis van systeemaanroepfiltering en namespace-gebruik, bandbreedtebeheer (traffic shaping), multithreading, verbeterde foutverwerking en het definiƫren van virtuele hosts op basis van masks.

De resultaten van synthetische prestatiebenchmarks (zonder optimalisaties in de configuratie, zoals deze zijn) met de ab-tool bij het uitvoeren van 250 en 500 (in haakjes) gelijktijdige verzoeken ("ab -k -c 250 -n 10000 http://localhost/"):

  • hinsightd/0.9.17 — 63035.01 verzoeken per seconde (54984.63)
  • lighttpd/1.4.67 — 53693.29 aanvragen per seconde (1613.59)
  • Apache/2.4.54 — 37474.10 aanvragen per seconde (34305.55)
  • Caddy/2.6.2 — 35412.02 aanvragen per seconde (33995.57)
  • nginx/1.23.2 — 26673.64 aanvragen per seconde (26172.73)

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster