Administration IT PDF Gratuit

Administration Serveur HTTP : Maîtriser les Bases - Cours

Administration Serveur HTTP : L'administration d'un serveur HTTP consiste à gérer et configurer les logiciels qui servent des contenus web via le protocole HTTP. Le contenu présente les bases de la configuration d'Apache, l'un des serveurs web les plus utilisés — pour comparaison, Nginx privilégie un modèle événementiel et une faible consommation mémoire, tandis qu'Apache offre une grande modularité via ses modules et directives. Notez qu'un « serveur HTTP » désigne ici le processus logiciel (démon) qui répond aux requêtes, et non la machine physique. Rédigé par Prof. zytoune.

🎯 Ce que vous allez apprendre

  • Présentation HTTP : Concepts fondamentaux du protocole HTTP.
  • Installation et configuration d'Apache 2 : Étapes et commandes pour mettre en place configuration Apache 2 sur une distribution Debian/Ubuntu.
  • VirtualHosts : Configuration de plusieurs sites sur un même serveur (IP-based ou name-based). Notez que pour les VirtualHosts par nom, une configuration DNS correcte or une modification du fichier /etc/hosts est nécessaire.
  • Aliasing : Redirections et mappages de chemins vers des ressources spécifiques.
  • Limitation d'accès : Méthodes pour restreindre l'accès à certaines ressources.

Architecture et fonctionnement du protocole HTTP

Le modèle Client‑Serveur régit les échanges entre le navigateur (client) et le serveur HTTP (démon Apache). Lorsqu'un utilisateur demande une page, le navigateur envoie une requête structurée ; Apache écoute sur un port (par défaut 80 pour HTTP et 443 pour HTTPS), traite la requête selon sa configuration et ses modules, puis renvoie une réponse contenant un code d'état, des en-têtes et éventuellement le corps de la ressource. Maîtriser ce cycle facilite le diagnostic et la configuration fine d'un serveur web.

Le fonctionnement du Web

Le client initie la communication avec une requête composée d'une méthode, d'une URL, d'en-têtes et éventuellement d'un corps. Apache reçoit ces éléments, applique les directives Apache et les modules activés (par ex. mod_rewrite, mod_ssl), puis retourne la réponse. Le protocole étant sans état, des mécanismes comme les cookies ou les sessions assurent la persistance du contexte applicatif.

Syntaxe des messages HTTP

  • Méthode : GET, POST, PUT, DELETE, etc.
  • URL : chemin et ressource ciblée.
  • Headers : métadonnées (Host, User-Agent, Content-Type, Authorization, etc.).
  • Corps : données envoyées avec la requête (notamment pour POST/PUT).

Fichiers de configuration clés

Le fichier principal httpd.conf (ou ses équivalents sous Debian/Ubuntu) contient les directives serveur globales. Les fichiers .htaccess permettent des réglages au niveau d'un répertoire pour la réécriture d'URL, l'authentification ou le contrôle d'accès sans modifier la configuration globale. Connaître ces fichiers est indispensable pour personnaliser le comportement d'Apache et sécuriser les services.

Parmi les modules courants, mod_rewrite gère la réécriture et les redirections ; mod_ssl active le support HTTPS et la gestion des certificats TLS. Cette modularité facilite l'adaptation aux besoins fonctionnels et de sécurité.

Installation et configuration d'Apache 2

Sur une distribution Debian/Ubuntu, l'installation via le gestionnaire de paquets est la méthode standard pour obtenir une configuration cohérente et des mises à jour simples. Exemples de commandes utiles :

sudo apt update
sudo apt install apache2

Pour gérer le service :

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl status apache2

Ces commandes forment la base d'un serveur web tutoriel pratique pour démarrer, arrêter et vérifier l'état du démon Apache après modification de la configuration.

Diagnostic et codes d'erreur HTTP

Codes d'état HTTP courants

  • 200 — OK : la requête a réussi et la ressource est renvoyée.
  • 301 — Moved Permanently : redirection permanente.
  • 403 — Forbidden : accès refusé (contrôles d'accès).
  • 404 — Not Found : ressource introuvable.
  • 500 — Internal Server Error : erreur côté serveur.

Familles de codes : 2xx (succès), 4xx (erreurs client), 5xx (erreurs serveur). Savoir identifier la famille et le code facilite le diagnostic et la résolution des incidents.

Outils de diagnostic

Utilisez des outils en ligne de commande pour vérifier la disponibilité et le comportement du serveur : curl pour examiner les en-têtes et le corps (curl -I http://exemple.com), telnet ou nc (netcat) pour tester la connectivité (telnet serveur.example.com 80 ou nc -vz serveur.example.com 80). Ces commandes permettent d'isoler rapidement les problèmes réseau, TLS ou de configuration du démon Apache.

Analyse des fichiers de logs

Les logs sont la première source d'information lors d'un incident. Emplacements typiques sur Debian/Ubuntu : /var/log/apache2/access.log (journaux des requêtes clients) et /var/log/apache2/error.log (erreurs et messages du daemon). L'access.log permet d'identifier les requêtes problématiques, les chemins demandés et les statuts renvoyés ; l'error.log renseigne sur les erreurs de configuration, les permissions, les modules manquants ou les exceptions d'exécution. Pour une analyse rapide, utilisez :

sudo tail -n 200 /var/log/apache2/error.log
sudo tail -n 200 /var/log/apache2/access.log
sudo grep "404" /var/log/apache2/access.log | tail

Intégrez la gestion des logs HTTP dans vos procédures de surveillance et conservez des rotations (logrotate) pour éviter la saturation disque.

Maintenance et surveillance du serveur Apache

La maintenance inclut la surveillance des services, la gestion des logs et la mise à jour des paquets. Automatisez les vérifications d'intégrité et d'espace disque, configurez logrotate pour archiver les logs et activez les alertes sur erreurs critiques. Pour superviser la charge et les connexions, combinez : extraction de métriques système (CPU, mémoire, file descriptors), lecture des logs d'accès et outils comme htop, netstat ou ss pour analyser les sockets ouverts. Ces pratiques réduisent le temps moyen de réparation (MTTR) en cas d'incident.

Optimisation des performances HTTP

L'optimisation vise à réduire la latence et la charge serveur. Activez le cache côté client via des en-têtes adéquats, compressez les contenus avec mod_deflate, et limitez les modules inutiles pour diminuer la consommation mémoire. Pour des sites à fort trafic, évaluez le choix du MPM (prefork, worker, event) selon la charge et la nature des modules PHP utilisés. Mesurez avant et après chaque changement afin de vérifier l'impact réel sur les temps de réponse et la consommation des ressources.

📑 Sommaire du document

  1. Introduction : Présentation HTTP
  2. Installation et configuration d'Apache 2
  3. VirtualHosts
  4. Aliasing
  5. Limitation d'accès
  6. Protocole HTTP – Requête
  7. Protocole HTTP – Réponse

👤 À qui s'adresse ce cours ?

  • Public cible : débutants souhaitant apprendre l'administration d'un serveur HTTP, en particulier Apache.
  • Prérequis : une connaissance de base de la ligne de commande Linux est recommandée pour l'installation et le dépannage.

❓ Foire Aux Questions (FAQ)

Qu'est-ce qu'un serveur HTTP ?
Logiciel qui gère les requêtes des clients pour accéder à des ressources web via HTTP et renvoie les données demandées.

Pourquoi utiliser Apache ?
Apache est populaire pour sa flexibilité, sa modularité et sa large base d'utilisateurs, ce qui facilite l'accès à de la documentation et des solutions existantes.