Le serveur HTTP hinsightd, utilisant le sous-système io_uring de Linux, a été présenté.

Un serveur HTTP compact hinsightd a été publié, remarquable par son utilisation de l'interface d'entrée/sortie asynchrone io_uring intégrée au noyau Linux. Ce serveur supporte le protocole HTTP/1.1 et est conçu pour une consommation de ressources faible tout en offrant des fonctionnalités recherchées. Par exemple, hinsightd prend en charge TLS, le proxy inversé (rproxy), le cache de contenu généré dynamiquement sur le système de fichiers local, la compression à la volée des données envoyées, le redémarrage sans rupture des connexions établies et l'ajout de gestionnaires de requêtes dynamiques via les mécanismes FastCGI et CGI. Le code du projet est écrit en C et est distribué sous licence BSD.

Pour traiter les configurations, écrire des extensions et créer des gestionnaires de requêtes, il est possible d'utiliser le langage Lua, ces gestionnaires pouvant être spécifiés directement dans le fichier. configuration du serveurDes fonctionnalités telles que la modification du format des enregistrements de journal, l'association de journaux spécifiques à des hôtes virtuels, la définition de stratégies de répartition de la charge, l'authentification HTTP, la réécriture d'URL et l'exécution de tâches planifiées (par exemple, la mise à jour des certificats Let's Encrypt) sont mises en œuvre sous forme de plugins.

Avec serveur Une bibliothèque est fournie pour intégrer les fonctions de hinsightd dans vos applications. Hinsightd inclut également une fonctionnalité intégrée pour envoyer des requêtes HTTP depuis la ligne de commande, par exemple, pour charger une page, vous pouvez exécuter la commande «hinsightd -d URL». Le serveur est très compact et pèse environ 200 Ko en version compilée (100 Ko pour l'exécutable et 100 Ko pour la bibliothèque partagée). Parmi les dépendances externes, on retrouve uniquement libc, lua, liburing et zlib, ainsi que opcionalement openssl/libressl et ffcall.

Parmi les projets de développement futur, on mentionne la possibilité de stocker des fichiers compressés en cache, l'isolation sandbox basée sur la filtration des appels système et l'utilisation de namespaces, la gestion de la bande passante (traffic shaping), le multithreading, un traitement des erreurs amélioré et la définition d'hôtes virtuels basée sur des masques.

Les résultats des tests de performance synthétiques (sans optimisations dans la configuration telle quelle) par l'outil ab lors de l'exécution de 250 et 500 (entre parenthèses) requêtes parallèles («ab -k -c 250 -n 10000 http://localhost/»):

  • hinsightd/0.9.17 — 63035,01 requêtes par seconde (54984,63)
  • lighttpd/1.4.67 — 53693,29 requêtes par seconde (1613,59)
  • Apache/2.4.54 — 37474,10 requêtes par seconde (34305,55)
  • Caddy/2.6.2 — 35412,02 requêtes par seconde (33995,57)
  • nginx/1.23.2 — 26673,64 requêtes par seconde (26172,73)

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster