Comment créer un serveur Web simple avec darkhttpd

Comment créer un serveur Web simple avec darkhttpd
Une photographie d'un écran d'ordinateur affichant du code HTML.

Darkhttpd est un démon de serveur Web léger et mono-binaire pour Linux. Il fournit un moyen simple et « sans configuration » de déployer des sites Web aussi rapidement que possible sur votre serveur. Ici, nous vous montrons comment installer darkhttpd sur Ubuntu Linux, comment il se compare aux serveurs Web populaires et vous guidons tout au long du processus de création de votre premier site Web.

Darkhttpd contre Apache contre Nginx

Darkhttpd n’est pas le seul serveur Web que vous pouvez installer sur votre machine Linux. Il existe Apache, Nginx, Caddy, Lighttpd et bien d’autres. Dans cette section, nous allons comparer darkhttpd à Apache et Nginx et voir comment il fonctionne.

En ce qui concerne la facilité d’utilisation, darkhttpd surpasse Apache et Nginx. Darkhttpd se concentre sur le fait de tout garder sur un seul programme. Cela signifie que vous pouvez partager votre site Web sans vous soucier de sa configuration et du service d’initialisation de votre système.

Un terminal affichant la sortie d'aide de darkhttpd.

En termes de sécurité, darkhttpd utilise un chroot pour ses fichiers. Il dispose également de timeouts automatiques pour les connexions inactives et d’une journalisation de base. C’est loin d’être le cas d’Apache et de Nginx. Tous deux disposent de puissants filtres de limitation de débit et d’options permettant d’affiner les en-têtes HTTP sur leurs sites.

La simplicité de Darkhttpd le rend également inflexible face aux demandes personnalisées des utilisateurs. Les développeurs du programme l’ont conçu comme un moyen rapide de diffuser du contenu Web statique. Cela signifie que, par rapport à Apache et Nginx, darkhttpd ne peut pas exécuter de scripts CGI ni agir comme un proxy inverse pour vos applications.

Un terminal montrant un exemple de configuration de proxy inverse pour Nginx.
Catégorie darkhttpd Apache Nginx
Facilité d’utilisation Ne nécessite aucune configuration supplémentaire pour héberger des sites Web. Nécessite une configuration spécifique au système et au site pour fonctionner. Nécessite une configuration spécifique au site pour fonctionner.
Sécurité globale Livré avec des fonctionnalités de base de chroot et de journalisation. Livré avec des limiteurs de débit et des en-têtes HTTP axés sur la sécurité. Livré avec des limiteurs de débit et des en-têtes HTTP axés sur la sécurité.
Prise en charge SSL Pas de support SSL intégré. Livré avec « mod_ssl » pour la prise en charge SSL. Livré avec support SSL intégré.
Flexibilité d’application Ne peut fonctionner qu’avec du contenu Web statique. Peut fonctionner avec du contenu Web statique et dynamique. Peut fonctionner comme serveur Web, équilibreur de charge et proxy inverse.

Préparation de votre système pour darkhttpd

La première étape pour créer un site Web avec darkhttpd dans Ubuntu Linux consiste à obtenir les dépendances pour Docker et Docker Compose.

Commencez par télécharger la clé de signature pour le projet Docker :

Utilisez votre éditeur de texte préféré pour créer un nouveau fichier de référentiel :

Collez la ligne de code suivante dans votre fichier de référentiel :

Rechargez les dépôts de paquets de votre machine et mettez à jour l’ensemble de votre système :

Installez Docker, son plugin Compose et Git en utilisant apt :

Un terminal montrant le processus d'installation de Docker, de ses plugins et de Git.

Installation et exécution de darkhttpd

Accédez à votre répertoire personnel, puis récupérez la dernière version de darkhttpd sur votre système :

Accédez à l’intérieur du dépôt Git, puis créez un nouveau fichier Docker Compose à l’aide de votre éditeur de texte préféré :

Collez le bloc de code suivant dans votre fichier Compose :

Enregistrez votre nouveau fichier Compose, puis exécutez la commande suivante pour créer et exécuter votre conteneur Docker darkhttpd :

Créez un dossier « html » dans le référentiel Linux darkhttpd, puis copiez-y les fichiers statiques de votre site Web :

Confirmez que darkhttpd fonctionne correctement en répertoriant les conteneurs disponibles dans le système :

Un terminal montrant le conteneur Docker darkhttpd exécuté dans le système.

Exécution de darkhttpd sur SSL avec stunnel

À ce stade, vous disposez désormais d’un serveur darkhttpd en cours d’exécution sur le port 8080. Cependant, pour y accéder via Internet, vous devez d’abord l’encapsuler dans SSL via un proxy inverse.

Pour commencer, créez un nouvel enregistrement DNS « A » pour votre domaine pointant vers l’adresse IPv4 de votre darkhttpd. Dans mon cas, je vais pointer l’adresse IPv4 de ma machine vers l’enregistrement : « web.myvpsserver.top ».

Récupérez et installez stunnel, le package snap « core » et Certbot sur votre machine :

Enregistrez votre instance darkhttpd auprès de l’Electronic Frontier Foundation :

Générez un certificat SSL nu pour votre nom de domaine :

Un terminal montrant le processus de génération de certificat SSL dans LetsEncrypt.

Créez un nouveau fichier de configuration pour votre proxy inverse Stunnel :

Collez le bloc de code suivant dans votre nouveau fichier de configuration :

Enregistrez votre nouveau fichier de configuration, puis exécutez la commande suivante pour démarrer le proxy inverse :

Un terminal affichant l'état actuel du service Stunnel dans le système.

Confirmez que votre site Web statique fonctionne désormais correctement en ouvrant votre sous-domaine sur un navigateur Web.

Une capture d'écran montrant l'exemple de site Web exécuté sur darkhttpd avec SSL.

Héberger votre propre site Web simple à l’aide de darkhttpd n’est que la première étape dans l’exploration du monde merveilleux des services Web auto-hébergés. Découvrez comment créer des flux RSS pour vos réseaux sociaux à l’aide de RSS-Bridge.

Crédit photo : Ilya Pavlov via Unsplash . Toutes les modifications et captures d’écran par Ramces Red.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *