Apache : rôle et fonctionnement du serveur web

Auteur : Publié le

En bref : Apache HTTP Server est un logiciel gratuit de serveur web qui reçoit les requêtes du navigateur et renvoie le contenu des pages, des fichiers ou les réponses d’applications. Il peut servir de simples pages HTML, faire fonctionner des sites WordPress en collaboration avec PHP et transmettre le trafic à d’autres applications. Apache n’est ni un nom de domaine ni un hébergement : c’est l’un des logiciels qui peuvent fonctionner sur un serveur d’hébergement.

À quoi sert Apache et comment fonctionne-t-il ?

Un serveur web est un logiciel qui gère les communications via HTTP ou HTTPS, les protocoles utilisés pour transmettre les pages web. Le mot « serveur » peut aussi désigner un ordinateur, mais Apache est un logiciel, pas un appareil. Le projet Apache HTTP Server est développé au sein de l’Apache Software Foundation et son code source est ouvert.

Lorsque vous saisissez l’adresse d’un site dans le navigateur, le système DNS aide à déterminer l’adresse du serveur correspondant au nom de domaine. Le navigateur se connecte ensuite au serveur et envoie une requête, par exemple pour récupérer la page d’accueil. Apache identifie le site et le chemin demandés, applique les règles de configuration, puis renvoie une réponse.

La préparation de cette réponse dépend de la ressource :

Apache renvoie aussi des codes de statut HTTP, comme le code 404 lorsqu’une ressource est introuvable. Le code d’erreur ne suffit toutefois pas à en déterminer la cause : la réponse peut aussi provenir de l’application située derrière Apache.

Apache, domaine, hébergement et PHP : des rôles différents

Le nom de domaine est le nom utilisé dans l’adresse du site, tandis que l’hébergement fournit les ressources nécessaires à son fonctionnement. Apache gère le trafic web sur ces ressources. PHP est un langage de programmation et un environnement d’exécution du code ; la base de données, quant à elle, stocke les informations utilisées par l’application.

Par exemple, une boutique reposant sur WordPress peut utiliser le domaine boutique.example, un compte d’hébergement, Apache, PHP et une base MariaDB. Le navigateur demande une page produit, Apache transmet la requête au mécanisme d’exécution de PHP, puis WordPress récupère les données du produit dans la base. Le navigateur du client reçoit le HTML généré, et non le code PHP ni le contenu brut de la base.

Ces éléments ne sont pas indissociables. WordPress peut aussi fonctionner avec un autre serveur web, et Apache peut servir une simple page HTML sans PHP ni base de données. La mention « l’hébergement prend en charge Apache » ne décrit donc pas à elle seule tout l’environnement nécessaire à un site donné.

Les principales fonctionnalités d’Apache

Apache peut gérer plusieurs sites sur une même machine grâce à la configuration VirtualHost. Celle-ci définit les paramètres propres à chaque site, notamment son nom de domaine, le répertoire de ses fichiers et l’emplacement de ses journaux. L’enregistrement d’un domaine ne crée pas cette configuration : chez un hébergeur, le panneau de gestion s’en charge généralement lors de l’ajout du domaine.

Des modules étendent les fonctionnalités du serveur. Par exemple, mod_rewrite permet de réécrire les adresses et d’orienter les requêtes selon des règles, tandis que mod_ssl assure la prise en charge de TLS, le chiffrement utilisé par HTTPS. La mise en service de HTTPS nécessite aussi une configuration correcte et un certificat pour le domaine.

Apache enregistre des journaux, également appelés logs. Le journal d’accès consigne les requêtes traitées, tandis que le journal d’erreurs aide à rechercher les problèmes de configuration et de fonctionnement du serveur. Lorsqu’un site tombe en panne, ces journaux sont généralement plus utiles que le seul message affiché dans le navigateur.

Qu’est-ce que le fichier .htaccess et quand l’utiliser ?

.htaccess est un fichier qui permet de modifier certains paramètres d’Apache pour un répertoire donné et ses sous-répertoires. Il ne s’applique que dans les limites autorisées par l’administrateur du serveur. Sur un hébergement mutualisé, il peut servir à définir des redirections, des règles de réécriture d’adresses ou des restrictions d’accès sans modifier la configuration principale.

Les règles de WordPress en sont un exemple : elles dirigent les requêtes portant sur les adresses lisibles des articles vers le fichier qui prend en charge l’application. Supprimer ces règles ou les modifier incorrectement peut laisser la page d’accueil fonctionnelle, tout en provoquant des erreurs 404 sur les autres pages.

Avant de modifier .htaccess, faites-en une copie, procédez à une seule modification à la fois et testez plusieurs adresses du site. Une directive non autorisée ou une erreur de syntaxe peut entraîner une réponse 500, qui signale une erreur interne du serveur. Si vous administrez l’ensemble du serveur, il est généralement préférable de placer les paramètres dans la configuration principale : cela facilite leur contrôle et évite la lecture supplémentaire des fichiers .htaccess.

Avez-vous besoin d’Apache pour votre site ?

Sur un hébergement mutualisé ou infogéré, vous n’installez généralement pas Apache vous-même. Le fournisseur choisit et maintient le serveur web, tandis que vous configurez le domaine et l’application. La documentation de l’hébergement devrait préciser le logiciel utilisé, la prise en charge éventuelle de .htaccess et les directives autorisées.

Avec votre propre VPS, c’est-à-dire un serveur virtuel, le choix et la maintenance des logiciels peuvent vous incomber. Apache est un choix pertinent lorsque l’application ou votre mode d’administration utilise ses modules et ses règles. Nginx constitue notamment une alternative, mais il ne lit pas les fichiers .htaccess : une migration nécessite donc de transposer les règles concernées dans sa configuration.

Il n’existe aucune règle universelle selon laquelle l’un de ces serveurs serait toujours plus rapide. La configuration, l’application, le cache et les ressources disponibles comptent tous. Avant de choisir un hébergement, vérifiez avant tout les exigences de votre application et qui prend en charge les mises à jour et la configuration du serveur web.

À lire aussi : Qu’est-ce que le 2FA ?

À lire aussi

Découvrez comment PHP-FPM traite les requêtes PHP, son rôle face au serveur web et comment adapter ses processus au trafic.
Découvrez BIND, logiciel libre de serveur DNS : ses rôles, la gestion des domaines et les cas où le déployer vous-même.
Découvrez le registre polonais REGON, son numéro, ses différences avec NIP et KRS et comment vérifier les données d’une entreprise.