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

È stato pubblicato un server HTTP compatto hinsightd, notevole per l'uso dell'interfaccia di input/output asincrono io_uring fornita nel kernel Linux. Il server supporta il protocollo HTTP/1.1 ed è progettato per un basso consumo di risorse, fornendo al contempo funzionalità richieste. Ad esempio, hinsightd supporta TLS, reverse proxy (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 gestori di richieste dinamici tramite i meccanismi FastCGI e CGI. Il codice del progetto è scritto in C e distribuito sotto licenza BSD.

Per la gestione della configurazione, la scrittura di estensioni e la creazione di gestori di richieste, è possibile utilizzare il linguaggio Lua, permettendo che tali gestori siano definiti direttamente nel file configurazione del server. Funzionalità come la modifica del formato di registrazione nei log, l'associazione di log specifici a host virtuali, la definizione di strategie di bilanciamento del carico, l'autenticazione HTTP, la riscrittura degli URL e l'esecuzione di lavori pianificati (ad esempio, l'aggiornamento dei certificati Let’s Encrypt) sono implementate sotto forma di plugin.

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

Tra i piani per ulteriori sviluppi si menzionano le possibilità di caching di file compressi, isolamento sandbox basato sul filtraggio delle chiamate di sistema e sull'uso di spazi dei nomi, gestione della larghezza di banda (traffic shaping), multithreading, miglioramento della gestione degli errori e definizione di host virtuali basati su maschere.

Risultati del test di prestazioni sintetico (senza ottimizzazioni nella configurazione così com'è) con lo strumento ab eseguendo 250 e 500 (in 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