
🎯 Ce guide présente le fonctionnement d’un serveur Web. Nous verrons comment il fonctionne, où se trouvent ses configurations et comment les tester est indispensable pour administrer proprement un environnement applicatif.
Ce chapitre vous guide à travers les fondamentaux : rôle du serveur Web, anatomie des services Apache et Nginx, et bonnes pratiques de vérification.
Qu’est-ce qu’un serveur Web ? #
Le terme serveur Web désigne à la fois le matériel et le logiciel qui permettent de desservir du contenu sur un réseau local ou sur Internet. En tant que matériel, il s’agit simplement d’un ordinateur relié au réseau et exécutant un ou plusieurs services. En tant que logiciel, il s’agit d’un serveur HTTP, c’est-à-dire une application capable de recevoir et de traiter des requêtes HTTP.
Un serveur Web délivre du contenu à destination d’un client : pages statiques (HTML), contenus dynamiques (PHP), images, sons, fichiers ou réponses générées par d’autres services. Les requêtes peuvent provenir d’un poste utilisateur ou d’un autre serveur.
Le protocole HTTP utilise par défaut le port TCP 80. Les connexions sécurisées en HTTPS utilisent généralement le port TCP 443.
Plusieurs applications peuvent assurer ce rôle, notamment Apache, Nginx, lighttpd, Varnish, Tomcat, ou IIS. Chaque solution possède ses spécificités, mais le principe reste identique : recevoir une requête, la traiter puis retourner une réponse.
Apache : structure et configuration #
Apache est l’un des serveurs Web couramment utilisés dans les environnements Linux. Sa configuration est généralement organisée dans le répertoire :
/etc/apache2/
Le fichier apache2.conf contient la configuration principale du service.
Les configurations des VirtualHosts sont généralement réparties entre :
/etc/apache2/sites-available/
/etc/apache2/sites-enabled/
sites-available contient les configurations disponibles, tandis que sites-enabled référence les configurations activées, généralement au moyen de liens symboliques.
Le même principe est utilisé pour les modules :
ℹ️ Un module Apache, c’est une extension qui ajoute une fonctionnalité au serveur Web.
Apache possède un fonctionnement de base, puis peut charger des modules selon les besoins. Cela permet de ne pas faire fonctionner toutes les fonctionnalités en permanence.
Par exemple :
mod_php → permet, dans certaines configurations, d’intégrer PHP à Apache.
mod_ssl → permet la gestion de HTTPS/TLS ;
mod_rewrite → permet de réécrire les URL ;
mod_proxy → permet à Apache de fonctionner comme proxy / reverse proxy ;
mod_headers → permet de modifier les en-têtes HTTP ;
/etc/apache2/mods-available/
/etc/apache2/mods-enabled/
Pour consulter les modules Apache, il est notamment possible d’utiliser :
apache2ctl -l
pour les modules statiques, et :
apache2ctl -M
pour les modules chargés dynamiquement.
La présence de fichiers dans mods-enabled permet également d’identifier les modules actuellement activés.
Lorsqu’un module supplémentaire est nécessaire, son ajout peut être demandé via l’infogérance de niveau 2, en précisant le serveur concerné et le module souhaité.
Tester la configuration Apache
Avant tout rechargement du service, la configuration doit être contrôlée :
apache2ctl configtest
Pour afficher la configuration des VirtualHosts et vérifier leur association aux adresses et ports d’écoute :
apache2ctl -S
Ces vérifications permettent de détecter une erreur de configuration avant son application en production.
Nginx : structure et configuration #
Nginx est également utilisé comme serveur Web et peut notamment être placé en reverse proxy devant d’autres services.
Sa configuration est généralement centralisée dans :
/etc/nginx/
Le fichier nginx.conf contient les directives générales du service.
Les configurations des différents sites sont généralement organisées dans :
/etc/nginx/sites-available/
/etc/nginx/sites-enabled/
Comme avec Apache, sites-available regroupe les configurations disponibles tandis que sites-enabled référence celles qui sont actives, généralement via des liens symboliques.
Tester la configuration Nginx
Avant de recharger le service, il est impératif de vérifier la configuration :
nginx -t
Cette commande contrôle notamment la syntaxe des fichiers de configuration et signale les erreurs susceptibles d’empêcher le rechargement du service.
Une fois le test validé, la configuration peut être rechargée :
systemctl reload nginx
Attention : toute modification de configuration d’un serveur Web peut avoir un impact sur les sites hébergés. Le contrôle de la configuration doit donc systématiquement précéder son rechargement.
À retenir #
Dans un environnement de Webhosting, les réflexes essentiels sont :
Identifier le serveur Web → localiser sa configuration → modifier → tester → recharger.
Pour Apache, les commandes principales sont apache2ctl configtest et apache2ctl -S. Pour Nginx, nginx -t permet de valider la configuration avant son rechargement.
Ceci conclut notre guide. Le Centre d’Expertise Client XPR reste à votre disposition.