È stato presentato il server HTTP hinsightd, che utilizza la sottosistema io_uring di Linux.

È stato pubblicato un server HTTP compatto, hinsightd, noto per l'utilizzo dell'interfaccia di input/output asincrono io_uring fornita dal kernel Linux. Il server supporta il protocollo HTTP/1.1 ed è progettato per un basso consumo di risorse, offrendo nel contempo funzionalità richieste. Ad esempio, hinsightd supporta TLS, proxy inverso (rproxy), caching di contenuti generati dinamicamente nel filesystem locale, compressione on-the-fly dei dati restituiti, riavvio senza interruzione delle connessioni stabilite e collegamento di handler di richiesta dinamici tramite meccanismi FastCGI e CGI. Il codice del progetto è scritto in linguaggio C e distribuito sotto licenza BSD.

Per la gestione della configurazione, la scrittura di addon e la creazione di handler di richiesta, è disponibile la possibilità di utilizzare il linguaggio Lua, permettendo così di definire direttamente tali handler nel file. configurazione del server. Le funzionalità sono implementate nei plugin, come la modifica del formato di registrazione nel log, l'associazione di log specifici ad host virtuali, la definizione della strategia di bilanciamento del carico, l'autenticazione HTTP, la riscrittura degli URL e l'esecuzione di attività pianificate (ad esempio, aggiornamento dei certificati Let’s Encrypt).

Insieme a server viene fornita una libreria per integrare le funzioni di hinsightd nelle proprie applicazioni. Hinsightd include anche funzionalità integrate per inviare richieste HTTP dalla linea di comando; ad esempio, per caricare una pagina si può eseguire il comando 'hinsightd -d URL'. Il server è molto compatto e occupa circa 200KB in versione compilata (100KB per l'eseguibile e 100KB per la libreria condivisa). Tra le dipendenze esterne ci sono solo libc, lua, liburing e zlib, oltre a openssl/libressl e ffcall opzionali.

Tra i piani futuri si menziona la possibilità di memorizzare nella cache file compressi, l'isolamento sandbox basato sulla filtrazione delle chiamate di sistema e sull'uso di namespace, la gestione della larghezza di banda (traffic shaping), il multithreading, un miglioramento della gestione degli errori e la definizione di host virtuali basati su maschere.

Risultati del test di prestazioni sintetico (senza ottimizzazioni nella configurazione di default) con l'utilità ab durante l'esecuzione di 250 e 500 (tra parentesi) richieste parallele («ab -k -c 250 -n 10000 http://localhost/»):

  • hinsightd/0.9.17 — 63035.01 richieste al secondo (54984.63)
  • lighttpd/1.4.67 — 53693.29 richieste al secondo (1613.59)
  • Apache/2.4.54 — 37474.10 richieste al secondo (34305.55)
  • Caddy/2.6.2 — 35412.02 richieste al secondo (33995.57)
  • nginx/1.23.2 — 26673.64 richieste al secondo (26172.73)

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster