Introductie van de hinsightd HTTP-server, die gebruikmaakt van Linux-io_uring subsysteem

Een compacte HTTP-server, hinsightd, is gepubliceerd, die opvalt door het gebruik van de door de kernel geleverde functionaliteit. Linux io_uring is een asynchrone input/output-interface. De server ondersteunt het HTTP/1.1-protocol en is ontworpen om lichtgewicht te zijn en tegelijkertijd populaire functionaliteit te bieden. Zo ondersteunt hinsightd bijvoorbeeld TLS, reverse proxying (rproxy), caching van dynamisch gegenereerde content in het lokale bestandssysteem, on-the-fly compressie van geretourneerde data, herstarten zonder bestaande verbindingen te verbreken en het inschakelen van dynamische request handlers met behulp van FastCGI- en CGI-mechanismen. De projectcode is geschreven in C en wordt gedistribueerd onder de BSD-licentie.

De mogelijkheid om de Lua-taal te gebruiken is beschikbaar voor het verwerken van configuraties, het schrijven van add-ons en het maken van verzoekhandlers, waarbij dergelijke handlers direct in het bestand kunnen worden gedefinieerd. serverconfiguratiesPlugins bieden functies zoals het wijzigen van het logformaat, het koppelen van individuele logs aan virtuele hosts, het definiëren van een load balancing-strategie, HTTP-authenticatie, URL-herschrijving en het uitvoeren van geplande taken (zoals het bijwerken van Let's Encrypt-certificaten).

Met server Er wordt een bibliotheek meegeleverd voor het integreren van de functionaliteit van Hinsightd in uw applicaties. Hinsightd bevat ook geïntegreerde functionaliteit voor het verzenden van HTTP-verzoeken vanaf de commandoregel; om bijvoorbeeld een pagina te laden, kunt u "hinsightd -d URL" uitvoeren. De server is zeer compact en neemt ongeveer 200 KB aan gecompileerde ruimte in beslag (100 KB uitvoerbaar bestand en 100 KB gedeelde bibliotheek). Externe afhankelijkheden omvatten alleen libc, lua, liburing en zlib, en optioneel openssl/libressl en ffcall.

Verdere ontwikkelingsplannen omvatten de mogelijkheid om gecomprimeerde bestanden te cachen, sandbox-isolatie op basis van systeemoproepfiltering en naamruimten, verkeersvormgeving, multithreading, verbeterde foutverwerking en op maskers gebaseerde virtuele hostdefinitie.

Resultaten van synthetische prestatietests (zonder optimalisaties in de as-is-configuratie) met behulp van het hulpprogramma ab bij het uitvoeren van 250 en 500 (tussen haakjes) parallelle verzoeken (“ab -k -c 250 -n 10000 http://localhost/”):

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

Bron: opennet.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster