Serveur Apache : Guide Complet Pour Débutant

Alexandre Marotel

Serveur Apache Guide Complet (1)

Il existe plusieurs types de serveurs Web sur le marché et parmi eux se trouve Apache, l’un des serveurs les plus anciens. 

Bien que de nouvelles alternatives plus modernes et efficaces aient vu le jour ces dernières années, Apache continue d’être un serveur de référence.

Statistiquement, Apache couvre 33,7 % des 1000 sites les plus importants, tout juste après Nginx avec ses 38,8%. 

Il est largement utilisé dans les systèmes d’exploitation de type Unix, et peut être utilisé sur presque toutes les plates-formes telles que Windows, OS X, OS/2, etc. 

Dans ce guide détaillé, nous allons voir :

  • Ce qu’est Apache précisément ;
  • Son importance ;
  • Son mode de fonctionnement ;
  • Ses avantages et inconvénients ;
  • Différence entre lui et les autres serveurs Web du marché ;
  • Son installation et sa configuration ;
  • etc.

On commence !

Chapitre 1 : C’est quoi le serveur Apache et comment fonctionne-t-il ?

1.1. Qu’est-ce qu’Apache et à quoi ça sert ?

Le serveur Apache est l’un des serveurs Web gratuits les plus performants du marché. Il a été créé en 1995 par Rob McCool, alors employé du NCSA. 

D’après les statistiques de W3techs, son utilisation est de 31,5% de tous les sites Web dont le serveur est connu. 

Serveur Apache Guide Complet (2)

C’est la technologie de base de l’Apache Software Foundation, responsable de plus d’une douzaine de projets impliquant :

  • Les technologies de transmission Web ; 
  • Le traitement de données ;
  • Et l’exécution d’applications distribuées. 

Pourquoi Apache ? Le mot, Apache, a été tiré du nom du Native Tribu américaine « Apache », célèbre pour ses compétences en matière de guerre et de stratégie.

Homme de la Tribu americaine Apache

Source : Guru99

Au départ, il ne s’agissait que d’un groupe de correctifs pour le serveur Web NCSA HTTPd, que l’auteur a ensuite complètement remplacé en réécrivant tout le code d’origine.

En bref, Apache est un serveur Web HTTP open source développé et maintenu par une communauté d’utilisateurs autour de l’Apache Software Foundation. Il permet de répondre aux demandes de contenu provenant de clients Web (navigateurs).

 Client Serveur Bae de donnees

Source : Informationq

Actuellement et depuis 1996, c’est le serveur Web gratuit le plus utilisé au monde en raison de sa sécurité et de sa stabilité.

De plus, la plupart des sociétés d’hébergement Web travaillent avec des serveurs Apache.

1.1.1. Qu’est-ce qu’un serveur Web ?

Un serveur Web est un programme qui traite et renvoie des informations lorsqu’un utilisateur fait une demande. 

Requete et Reponse serveur web

Source : nanduribalajee

En d’autres termes, il héberge des sites Web sur un ou plusieurs serveurs et permet d’afficher le contenu (sites Web) du serveur via un logiciel client (un navigateur).

La plupart des serveurs sont compatibles avec Linux. Les serveurs Web Linux les plus importants sont Apache et NGINX.

1.1.2. Quel est le plus grand défi d’un serveur Web ?

Les fichiers que les serveurs traitent sont écrits dans différents langages : 

  • Python
  • Java
  • PHP
  • Etc.

Lorsqu’un utilisateur souhaite charger une page d’un site Web, son navigateur envoie une requête au serveur, et Apache renvoie une réponse avec tous les fichiers demandés :

  • Texte
  • Images ;
  • Vidéos
  • Etc.

En bref, le serveur fournit les pages demandées par différents utilisateurs et garantit une communication correcte et sécurisée. Le serveur et le client communiquent via le protocole HTTP. 

1.2. Comment fonctionne un serveur Apache ?

La fonctionnalité principale de ce service Web est de fournir aux utilisateurs tous les fichiers nécessaires pour visualiser le Web. Les demandes des utilisateurs sont généralement effectuées via un navigateur :

  • Chrome
  • Firefox
  • Safari ;
  • Etc.

Apache garantit que la communication entre le serveur Web et le client Web (utilisateur demandant l’information) est fluide et constante.

Ainsi, lorsqu’un utilisateur effectue une requête HTTP via le navigateur pour entrer un site Web ou une URL spécifique, Apache renvoie les informations demandées via le protocole HTTP.

Par exemple, lorsqu’un utilisateur écrit twaino.com dans son navigateur, cette requête atteindra notre serveur Apache, qui fournira les textes, images, styles… via le protocole HTTP.

Fonctionnement d un serveur apache

Source : Temok

De plus, Apache vous permet d’appliquer un haut niveau de personnalisation grâce à son système modulaire.

En fait, le serveur a une structure basée sur des modules qui vous permet d’activer et de désactiver diverses fonctionnalités comme : 

  • des modules de sécurité comme mod_security
  • des modules de mise en cache comme Varnish ;
  • ou module de personnalisation d’en-tête comme mod_headers.

Ces modules Apache doivent être utilisés avec prudence car ils peuvent affecter la sécurité et les fonctionnalités du serveur Web. (Nous verrons ci-dessous plus de détails sur les modules Apache.).

Apache vous permet également de régler les paramètres PHP de votre hébergement de manière personnalisée grâce au fichier .htaccess.

1.3. Quelques caractéristiques de Apache

Il s’agit d’un serveur Web avec prise en charge de HTTP/1.1 et plus tard de HTTP/2.0 selon la norme RFC 7540

caractéristiques de Apache (1)

Il a été l’un des premiers serveurs à prendre en charge VirtualHost (également appelé site virtuel) pour les domaines et IP respectant la norme RFC 2616 normale. 

Caractéristiques de Apache (1)

Cela permet ainsi d’héberger plusieurs domaines sur le même serveur avec la même IP, quelque chose qui aujourd’hui nous semble basique mais qui dans les années 90 a été une révolution.

Parmi les principales fonctionnalités d’Apache, on retrouve les suivantes :

  • Il est gratuit et open source ;
  • Installation et configuration simples ;
  • Hautement extensible et adaptable grâce aux modules ;
  • Fonctions intégrées pour l’authentification et la validation des utilisateurs ;
  • Prise en charge de langages tels que Perl, PHP et Python.

Chapitre 2 : Quels sont les avantages et inconvénients d’Apache ?

2.1. Avantages d’Apache

Certains des avantages que nous pouvons trouver dans un serveur Apache sont les suivants :

  • Support : C’est l’un des serveurs les plus utilisés depuis plus de deux décennies, donc derrière il y a une très grande communauté accompagnée d’une documentation complète.
  • Multiplateforme : Il fonctionne à la fois sur Microsoft Windows, Unix/Linux et Mac, ce qui en fait un excellent service à la fois pour un serveur et un environnement de développement sur n’importe quel poste de travail.
  • Fonctionnalités : Il contient un grand nombre de modules officiels et tiers qui vous permettent d’étendre les fonctionnalités du serveur.
  • Simplicité : c’est l’un des serveurs les plus simples à installer et à configurer, en particulier dans les distributions Linux où il fait partie des référentiels de chaque distribution. Dans le cas de Windows, il peut être trouvé emballé avec le serveur MySQL et PHP dans un seul programme d’installation ce qui facilite grandement l’installation.
  • Sécurité : Apache intègre des fonctionnalités permettant de sécuriser le logiciel grâce aux modules d’Autorisation et d’Authentification ainsi qu’aux fonctions de Contrôle d’Accès, ainsi qu’au support du chiffrement par certificats SSL/TLS.
  • Il a une grande communauté de développeurs à travers le monde, qui aident à améliorer le logiciel, puisque le code source original est disponible gratuitement pour la visualisation ;
  • Structure basée sur les modules ;
  • Il est open source et gratuit ;
  • Haut niveau de sécurité grâce à ses mises à jour constantes ;
  • Personnalisation via .htaccess indépendant dans chaque hébergement ;
  • Compatible avec les principaux CMS, boutiques en ligne et plateformes e-learning ;
  • C’est l’un des plus anciens serveurs Web du marché, donc super fiable ;
  • Permet d’activer et de désactiver des fonctionnalités ;
  • Facile à utiliser pour les débutants.

2.2. Inconvénients d’Apache

Voici les deux désavantages que présente Apache :

  • Les performances peuvent être affectées sur les pages à fort trafic, en particulier après 10 000 connexions ;
  • Si les modules ne sont pas utilisés correctement, des failles de sécurité peuvent être générées.

Le seul inconvénient notable est la médiocrité des performances par rapport aux autres alternatives du marché qui sont plus rapides et capables de gérer beaucoup plus de trafic avec les mêmes ressources.

Chapitre 3 : Différences entre Apache et les autres principaux serveurs Web

3.1. Apache contre Nginx

Bien que NGINX soit relativement jeune (né en 2004), il est devenu populaire très rapidement en raison des avantages qu’il offre en gérant un trafic élevé de plus de 10 000 connexions en même temps.

Source : Apache Vs NGINX – Which Is The Best Web Server for You? (serverguy.com)

Il peut être défini comme une application pour les serveurs Web. Il a principalement été conçu pour résoudre le problème que certains serveurs comme Apache avaient : Les propriétaires de sites avec beaucoup de trafic avaient des difficultés de performances.

NGINX permet d’effectuer toutes les requêtes vers un site Web en un seul processus et fournit une meilleure évolutivité.

Pour cette raison, il est utilisé par des marques internationales telles que Netflix, Airbnb, Pinterest ou Wikipedia. 

En bref, pour les sites Web à fort trafic, NGINX est ce dont vous avez besoin et pour les sites avec moins de visites, Apache est l’idéal.

Pour proposer un service web de haute performance en termes de connexion, certains serveurs disposent d’une configuration Apache et Nginx fonctionnant en parallèle.

3.1.1. Les différences entre Nginx et Apache 

Le serveur américain Apache et le Ngnix d’origine russe se sont livrés bataille et gagné du terrain dans le monde de l’hébergement Web. Ils sont deux des ressources les plus utilisées pour gérer des milliers de sites Web sur des serveurs locaux.

Et bien que les deux serveurs remplissent le même objectif de garder le monde connecté, il vaut la peine de passer en revue quelles sont leurs différences les plus importantes et ici vous en apprendrez plus à leur sujet.

3.1.1.1. Ils ont une structure et une portée différentes

Le serveur Web Apache a une structure logicielle simple, est open source et traite une demande d’utilisateur via HTTP ou HTTPS ,une à la fois.

D’autre part, Ngnix est plus robuste, open source et adapté à tous les types de sites et de trafic Web, car il peut gérer un grand nombre de connexions parallèles à partir du processus de travail.

3.1.1.2. Utilitaire Apache pour l’hébergement mutualisé

Une fonctionnalité d’Apache, contrairement à Nginx, est que le client peut choisir la configuration de son site Web sur le serveur sans affecter les autres, ni modifier la disposition du serveur global en hébergement mutualisé.

La fonction ci-dessus est possible à partir de fichiers .htaccess, avec lesquels chaque répertoire de la page Web peut être configuré indépendamment.

Bien que ce soit un grand avantage, cette flexibilité dans la configuration peut affecter les performances du serveur lorsqu’il reçoit un grand nombre de requêtes.

3.1.1.3. Compatibilité des deux serveurs

Apache est hautement compatible avec Linux, Windows ainsi que les CMS les plus utilisés pour créer et gérer des sites Web tels que WordPress et Joomla.

D’autre part, Nginx n’atteint toujours pas une synchronisation idéale avec Windows, mais il est également compatible avec les gestionnaires de contenu populaires et le langage de programmation Python.

3.1.1.4. Apache et Nginx facilitent la relation internaute-internaute  

Les serveurs Web sont venus vers nous pour faciliter l’échange d’informations. 

Si nous le voyons d’un point de vue plus particulier, ils permettent aux pages d’atteindre leurs objectifs en maintenant une vitesse de chargement qui permet à l’utilisateur d’obtenir rapidement ce qu’il recherche.

L’utilité des serveurs Web ne fait aucun doute, Apache et Nginx sont précieux. 

3.1.1.5. Autres différences
  1. L’utilisation du processeur et de la mémoire est cohérente sur Nginx même sous de lourdes charges par rapport à Apache.
  2. Apache utilise des méthodes conventionnelles basées sur des fichiers pour gérer le contenu statique et le contenu dynamique en intégrant le moteur de rendu de langage, tandis que Nginx n’a pas la capacité de rendre le contenu dynamique de manière native.
  3. Apache permet une configuration supplémentaire par répertoire en évaluant et en interprétant les directives dans des fichiers cachés appelés .htaccess, tandis que Nginx ne permet pas une configuration supplémentaire par répertoire en évaluant et en interprétant les directives.
  4. Apache interprète .htaccess tandis que Nginx n’interprète pas .htaccess
  5. Les requêtes sont servies plus rapidement par Nginx par rapport à Apache.
  6. Le niveau de sécurité est élevé dans Nginx par rapport à Apache, car Nginx ne permet pas de distribuer l’accès aux paramètres de niveau répertoire à un utilisateur individuel.
  7. Apache a été conçu comme un serveur Web, tandis que Nginx a été conçu comme un serveur Web ainsi qu’un serveur proxy.
  8. Dans Apache, les modules sont chargés et déchargés dynamiquement, mais dans Nginx, les modules ne sont pas chargés dynamiquement.
  9. Dans Nginx, les modules sont sélectionnés puis compilés dans le logiciel principal, tandis que dans Apache, cela se fait de manière dynamique.

Maintenant que leurs différences ressortent, c’est à vous de décider laquelle des deux vous convient pour le type de projet que vous souhaitez mettre en place.

3.2. Apache contre Tomcat

Tomcat (Apache tomcat) est un sous-projet de la Fondation Apache et est un projet au même niveau que le serveur Apache (c’est-à-dire httpd). 

Apache Tomcat

Source : Home-theater-designers

Tomcat est destiné exclusivement aux applications Java.

En terme de similarité entre les deux, nous avons :

  • Ils sont développés par l’organisation Apache ;
  • Ils ont la fonction de service HTTP ;
  • Ils sont open source et gratuits.

En terme de distinction, nous avons : 

      1. Tomcat est spécial en ce qu’il est également un conteneur Web Java et peut gérer les JSP, tandis qu’Apache est généralement fourni avec PHP et ne peut pas gérer JSP.

      2. Apache n’admet que les pages Web statiques et nécessitent Tomcat pour gérer les pages Web dynamiques comme Jsp. Tomcat peut aussi être utilisé pour les pages statiques mais dans certains cas, il est moins efficace qu’Apache .

      3. Il ne peut pas être configuré aussi simplement qu’Apache.

      4. Intégration Apache et Tomcat :

  • – Si le client demande une page statique, seul le serveur Apache doit répondre à la requête ;
  • – Si le client demande une page dynamique, c’est le serveur Tomcat qui répond à la demande.

      5. Apache et Tomcat sont indépendants et peuvent être intégrés dans le même serveur.

      6. Apache est implémenté dans le langage C et prend en charge diverses fonctionnalités et modules pour étendre les fonctionnalités de base. Tomcat est écrit en Java et est mieux compatible avec Servlet et JSP.

      7. Apache est un serveur Web (analyse statique, comme HTML), tomcat est un serveur d’application Java (analyse dynamique, comme JSP).

      8. Tomcat est juste un conteneur de servlet, qui peut être considéré comme une extension d’apache, mais peut fonctionner indépendamment d’apache.

      9. Apache est un serveur ordinaire, qui ne prend en charge que les pages Web HTML, c’est-à-dire les pages Web normales. En revanche, Tomcat est un conteneur jsp/servlet, et il prend également en charge HTML, JSP, ASP, PHP, CGI, etc.

      10. Apache se concentre sur le serveur HTTP et Tomcat sur le moteur de servlet. 

      11. Contrairement à Tomcat, Apache peut fonctionner pendant un an sans redémarrage, et la stabilité est très bonne.

3.3. Apache contre LiteSpeed

De nombreuses solutions de serveur modernes utilisent une technologie existante comme base sur laquelle s’appuyer. C’est exactement le cas avec LiteSpeed.

LiteSpeed

LiteSpeed ​​​​Web Server (LSWS) a été publié pour la première fois en 2003 et a été commercialisé en remplacement d’Apache. 

Il a la capacité de lire les fichiers de configuration Apache, d’exécuter les mêmes commandes et de s’intégrer pleinement à tous les panneaux de contrôle tels que cPanel, Plesk et DirectAdmin.

Les principales améliorations concernaient les performances et l’évolutivité.

Bien que LiteSpeed ​​était destiné à remplacer Apache, il n’utilise pas la même base de code. En fait, son architecture événementielle rend la solution beaucoup plus similaire à Nginx. 

Le logiciel utilise des mécanismes prédictifs pour gérer les pics de trafic entrant et alléger la charge sur le serveur.

A présent, il est temps de comparer LiteSpeed ​​vs Apache et de découvrir lequel est le meilleur :

  1. Popularité – LiteSpeed ​​vs Apache – Gagnant : Apache

Il ne pouvait y avoir qu’un seul gagnant pour ce facteur. Après tout, Apache conquérait déjà le marché. Lorsque LiteSpeed ​​​​est arrivé, son concurrent alimentait déjà plus de 50% de tous les sites Web.

En effet, le pourcentage varie en fonction de la source tierce que vous consultez.

Selon le rapport d’avril 2020 de Netcraft, Apache a déjà perdu la première place au profit de Nginx, ne détenant désormais que 25 % de part de marché. 

D’un autre côté, le géant des sondages Web W3Techs raconte une histoire différente. Leur récent rapport sur les statistiques d’utilisation montre qu’Apache est toujours roi, régnant sur 39 % d’Internet. Nginx est deuxième avec 31,9% et LiteSpeed ​​​​est à la 5ème place, responsable de 6,4% des sites en ligne.

Par conséquent, il est clair que le gagnant ici est Apache.

  1. Performances (contenu statique) – LiteSpeed ​​​​vs Apache – Gagnant : LiteSpeed

Grâce à son architecture asynchrone, LiteSpeed ​​​​est beaucoup plus flexible avec un trafic plus élevé et des connexions simultanées. 

Il utilise une méthodologie de mise en cache intelligente dans laquelle le système met en cache les fichiers compressés au lieu de créer une nouvelle demande chaque fois que l’utilisateur essaie de les afficher.

De cette façon, LSWS est capable d’augmenter les performances du serveur PHP de 50 %, le rendant finalement jusqu’à six fois plus rapide qu’Apache pour le contenu statique.

Il y a un autre avantage : LiteSpeed ​​​​fait des merveilles lorsqu’il s’agit de compresser des pages. De cette façon, chaque nouvelle requête est non seulement servie plus rapidement, mais utilise également moins de RAM.

Par conséquent, LiteSpeed ​​porte bien son nom.

Source : 8 Types of Web Hosting Services Explained + Infographic (sitesaga.com)
  1. Performance (contenu dynamique) – LiteSpeed ​​​​vs Apache : Égalité

La plupart des sites Web d’aujourd’hui sont dynamiques. Ils utilisent des scripts côté serveur, qui déterminent la façon dont le serveur gère les demandes des différents utilisateurs.

Les systèmes de gestion de contenu (CMS) sont des outils souvent utilisés pour créer du contenu dynamique : WordPress, Magento, Joomla, Drupal… il est fort probable que votre site utilise une solution CMS. 

Cependant, il n’y a pas de gagnant clair lorsque vous mettez les performances de LiteSpeed ​​à l’épreuve par rapport à celles d’Apache.

Vous pouvez facilement préconfigurer ce dernier avec des modules comme FastCGI et PHP-FPM. De cette façon, il pourra gérer des charges plus élevées et accélérer vos pages dans un environnement PHP multi-utilisateurs.

Le LSWS est tout aussi bon, et les tests de référence ont confirmé cette notion. Apache offrait une vitesse brute légèrement supérieure, mais la compression de page avancée de LiteSpeed ​​lui donnait un léger avantage pour les sites Web plus volumineux.

  1. Prise en charge du système d’exploitation – LiteSpeed ​​​​vs Apache – Gagnant : Apache

Le système d’exploitation est un autre élément crucial dans la configuration de votre site Web. Les serveurs Linux sont toujours la solution dominante dans le domaine de l’hébergement Web. Par conséquent, les systèmes d’exploitation de type Unix sont un choix naturel. 

À cet égard, le serveur Web que vous utilisez ne ferait pas beaucoup de différence.

Apache est compatible avec toutes les versions et instances du système d’exploitation Linux : 

  • Fedora ;
  • Ubuntu ;
  • RedHat ; 
  • Etc. 

Et puisque LiteSpeed ​​​utilise Apache comme base… eh bien, vous pouvez relier les points.

Pour les utilisateurs de Windows, les choses changent.

Alors qu’Apache est entièrement optimisé pour les instances Windows, LiteSpeed ​​​​n’est pas compatible avec le système d’exploitation. Selon les développeurs, les systèmes Windows sont assez différents des solutions de type Unix et nécessitent de nombreux réajustements de la configuration existante.

Ici, Apache remporte le duel.

  1. Sécurité – LiteSpeed ​​​​vs Apache – Gagnant : LiteSpeed

​​Il ne faut jamais négliger l’aspect sécurité. Les rapports sur la cybercriminalité révèlent une augmentation stupéfiante de 600 % des attaques en ligne depuis 2017, causant des pertes estimées à 500 milliards de dollars pour l’économie mondiale.

Apache est livré avec tout ce dont vous avez besoin pour sécuriser un serveur Web. Vous pouvez appliquer des règles de sécurité, bloquer l’accès des utilisateurs ou supprimer les modules inutiles. 

De plus, Apache essaie de suivre les dernières normes de sécurité des serveurs, publiant fréquemment des correctifs de vulnérabilité et des optimisations de sécurité.

Néanmoins, vous avez besoin de connaissances en administration et en reconfiguration. LiteSpeed ​​​​offre une protection de haut niveau pour le site Web dès le départ. 

Il prend en charge les règles mod_security d’Apache, vous pouvez donc vous attendre aux mêmes défenses de serveur renforcées.

Cependant, il y a certaines choses dans lesquelles LiteSpeed ​​excelle, et l’une d’elles est certainement la protection contre la force brute et d’autres attaques DDoS. 

Dans un test simulé, LSWS a facilement géré le même nombre de requêtes de serveur qui provoquaient auparavant le blocage d’Apache.

Chaque petite chose compte, et LiteSpeed ​​devra remporter ceci.

  1. Assistance – LiteSpeed ​​​​vs Apache – Gagnant : LiteSpeed

En comparant le serveur Web de LiteSpeed ​​à celui d’Apache en termes de support, les deux solutions maintiennent une documentation détaillée pour toute personne intéressée par l’auto-assistance. 

Naturellement, les guides sont un peu plus axés sur la technique, mais même un utilisateur novice peut trouver suffisamment de matériel d’apprentissage.

Pourtant, LiteSpeed ​​semble avoir une communauté mieux organisée. Outre les forums dédiés, les utilisateurs de LSWS ont leurs propres groupes sur Slack et Facebook, où les conseils d’optimisation sont souvent discutés ou les problèmes des clients résolus.

Quant au support technique en direct, Apache n’en a tout simplement pas. Le logiciel est open source, la communauté est donc votre meilleure option pour une assistance en direct. 

En comparaison, LiteSpeed ​​​​est un produit commercial, ils offrent donc dûment un support dédié. Vous pouvez facilement soumettre un ticket d’aide depuis votre espace utilisateur, et les opérateurs sont généralement utiles.

Vous pouvez même opter pour le support Premium avec LiteSpeed ​​​​et obtenir des services tels que :

  • L’installation de modules ; 
  • La configuration de packages DDoS ;
  • Ou la suppression de listes noires.

Bien sûr, ces services peuvent être assez coûteux. Par exemple, 999 $ par an pour la gestion des serveurs semble trop cher pour une start-up ou une PME. Mais si vous n’avez pas d’informaticien et que vous pouvez vous le permettre, les experts de LSWS peuvent être exactement ce que vous recherchez.

LiteSpeed ​​gagne ce tour en raison de la grande variété d’options de support et de l’assistance dédiée qu’il offre.

  1. Prix ​​– LiteSpeed ​​​​vs Apache – Gagnant : Apache

Apache a déjà le dessus ici. Le logiciel a toujours été distribué gratuitement, ce qui est l’une des raisons pour lesquelles il s’agit d’une solution si populaire pour la gestion des serveurs Web.

En tant que plate-forme propriétaire, LiteSpeed ​​​​est un produit payant, avec des prix allant de 10 $/mois à 92 $/mois aux niveaux supérieurs. Il existe aussi une version gratuite, mais elle est assez limitée : elle ne peut supporter qu’un seul domaine et donne environ 2 Go de RAM.

En fin de compte, si le prix est votre principal argument de vente, le gratuit (Apache) battra toujours le payant (LiteSpeed).

3.4. Apache contre Lighttpd

Il y a environ 10 ans (pendant que Nginx faisait encore ses premiers pas), Lighttpd était un serveur alternatif léger à Apache, car il prenait mieux en charge les connexions simultanées de milliers d’utilisateurs.

 Lighttpd

Source : Wikipédia

Lighttpd est un logiciel écrit en C par Jan Kneschke, distribué sous licence BSD et disponible pour Unix et Linux.

L’une des caractéristiques du serveur Web est qu’il consomme très peu de ressources au niveau de la RAM et du CPU. Cela le rend particulièrement utile pour les VPS ou Dédié avec de faibles ressources.

Il prend en charge la communication et l’intégration avec FastCGI, SCGI et CGI. Par conséquent, il est capable de répondre aux demandes de page effectuées dans n’importe quel langage de programmation.

L’un des inconvénients de lighttpd est qu’il ne prend pas en charge .htaccess, ainsi que le fait qu’il manque d’une documentation complète et d’une communauté massivement adoptée, contrairement à ses rivaux Apache et Nginx.

Voici 7 principales différences entre les serveurs Apache et Lighttpd :

  1. Nginx et Lighttpd sont probablement les deux serveurs asynchrones les plus connus, et Apache est de loin le serveur basé sur les processus les plus connus.
  2. La plupart des tests montrent qu’il existe un gain de performances inhérent à l’utilisation de Lighttpd par rapport à Apache.
  3. Apache prend en charge CGI et FastCGI. Il est testé et sa mise en œuvre n’a pas changé depuis des années. Vous pouvez trouver des documents qui datent de plus de dix ans et qui sont toujours valides. Lighttpd prend en charge CGI et FastCGI via le module.
  4. Lighttpd prend en charge X-Sendfile depuis la version 1.5. Apache 1 ne prend pas en charge X-Sendfile. Pour Apache 2, il existe un module tiers.
  5. La réécriture d’URL dans Apache peut être gérée dans une configuration (au niveau du site) ou via un remplacement dans l’état .htaccess. Dans Lighttpd, vous êtes limité à la réécriture uniquement via le niveau de configuration, ce qui signifie que pour des plateformes comme WordPress, vous devrez coder dur en suivant la règle de réécriture au format.
  6. Lighttpd est distribué selon les termes de la licence BSD révisée. Cette option de licence réduit considérablement les frictions collaboratives entre le code Lighttpd et celui d’autres projets distribués sous d’autres licences. Apache utilise la licence Apache 2.0 du même nom, licence parfois considérée comme « permissive » dans le sens où il s’agit d’une licence open source qui n’est pas une licence copyleft.
  7. L’installation de PHP n’est pas aussi facile dans Lighttpd que dans Apache car il n’y a pas de module pour cela.

3.5. Apache contre IIS

IIS (Internet Information Services – anciennement appelé Internet Information Server) est un serveur Web créé par Microsoft pour ses systèmes d’exploitation de serveur. 

Microsoft IIS

Source : Export Code

Bien qu’il s’agisse d’un système propriétaire, il s’appuie sur plusieurs protocoles accessibles au public, notamment :

  • Le protocole de transfert hypertexte (HTTP) ; 
  • Le protocole de transfert de courrier simple (SMTP) ;
  • Et le protocole de transfert de fichiers (FTP). 

Sa première version a été introduite avec Windows NT Server version 4 et a subi plusieurs mises à jour. Actuellement, la version la plus récente est IIS 10 (uniquement disponible sur Windows Server 2019). 

Après le lancement de la plate-forme .NET en 2002, IIS a également acquis le rôle de gestion d’ASP.NET

Microsoft ASP NET

Source : Wikipédia

ASP.NET, comme son concurrent direct JSP, est compilé avant exécution. Cette fonctionnalité présente des avantages par rapport aux options interprétées telles que ASP et PHP.

A présent, lequel choisir ?

Apache et IIS ont tous deux leurs avantages et leurs inconvénients : 

  • IIS est fourni avec Windows mais Apache n’a pas de support d’entreprise de grande renommée ; 
  • Apache a une excellente sécurité mais n’offre pas l’excellent support .NET d’IIS
  • Apache est gratuit et IIS est payant ;
  • Les modules linguistiques sont plus faciles à installer sur IIS car il vous suffit d’exécuter le programme d’installation ;
  • IIS est livré avec la bibliothèque ASP, prête à exécuter des scripts qui utilisent le langage, tandis qu’avec Apache, l’utilisateur doit installer les packages appropriés ;
  • Etc. 

Le choix final pourrait bien être défini par la solution qui répond le plus possible à vos besoins incontournables. 

Le tableau récapitulatif suivant peut également vous aider :

 Caracteristique IIS vs Apache

Voici une courte liste de sites et de leur serveur Web :

Liste de sites et leur serveur

3.6. Apache contre Caddy 

Caddy est une plate-forme de serveur Web open source conçue pour être simple, facile à utiliser et sécurisée. 

Écrit en Go sans aucune dépendance, Caddy est facile à télécharger et fonctionne sur presque toutes les plates-formes sur lesquelles Go se compile.

Caddy

Par défaut, Caddy prend en charge le HTTPS automatique en provisionnant et en renouvelant les certificats via Let’s Encrypt. Contrairement à Apache, Caddy fournit ces fonctionnalités prêtes à l’emploi, et il est également livré avec une redirection automatique du trafic HTTP vers HTTPS.

Comparés à Apache, les fichiers de configuration de Caddy sont beaucoup plus petits. De plus, Caddy fonctionne sur TLS 1.3, la norme la plus récente en matière de sécurité des transports.

En termes de performances, Caddy s’est avéré compétitif avec Apache (mais derrière Nginx) à la fois en termes de requêtes traitées par seconde et de stabilité en charge.

Un autre inconvénient possible de Caddy est qu’il détient actuellement une petite part de marché, ce qui peut limiter les ressources pour le dépannage. 

Chapitre 4 : Installation et configuration de Apache

4.1. Installation et configuration du serveur Apache : Tutoriels vidéos courtes

Pour vous permettre de voir tout au clair, nous avons sélectionné quelques vidéos tutos courtes bien explicite pour l’installation et la configuration du serveur HTTP Apache :

  • Tutoriel pour Installer et configurer Apache Web Server sur Windows 10 :
  • Tutoriel pour installer et configurer Apache sur Linux :
  • Tutoriel pour installer et configurer le serveur Web Apache dans Ubuntu Linux (pour les débutants) :

4.2. Démarrage d’Apache

Utilisez les commandes suivantes :

  • Pour démarrer le service Apache 

sudo service apache2 start

  • Pour vérifier si la configuration Apache est valide et pour recharger 

sudo apache2ctl configtest

sudo service apache2 reload

  • Pour répertorier les modules disponibles du serveur HTTP Apache 

/etc/init.d/apache2 -l

4.3. Configuration d’Apache via .htaccess

Utilisez le fichier « .htacess » pour configurer certains comportements d’Apache HTTP. Une application majeure de ce fichier est de rediriger une URL vers d’autres URL.

Le fichier .htacess suivant redirige http://twaino.com vers http://www.twaino.com. Il redirige également l’accès à une certaine page Web vers une autre page Web via une redirection 301. 

Les redirections 301

La redirection 301 indiquera aux moteurs de recherche que cette page a été déplacée et constitue la méthode recommandée pour déplacer des pages Web.

Voici une vidéo explicite qui pourra vous aider pour la configuration d’Apache via .htacess :

4.4. Utiliser des modules sur Apache Http

Apache Http prend en charge l’utilisation de modules. Pour activer les modules, utilisez : a2enmod + commande. Pour activer le module de réécriture par exemple, utilisez a2enmod rewrite.

Voici une vidéo qui explique comment activer/désactiver des modules dans Apache2 : https://youtu.be/YkZC38HfOQU 

4.5. Performances – Activer la compression gzip

Pour optimiser le temps de téléchargement de vos pages Web, vous pouvez activer la compression gzip. Cela nécessite le module Apache « mod_deflate » qui peut être installé par la commande suivante :

a2enmod deflate

sudo /etc/init.d/apache2 restart

La compression peut être activée dans le fichier de configuration par défaut de ce module situé dans /etc/apache2/mods-available/deflate.conf ou via le fichier « .htaccess« .

# compress all text & html:

AddOutputFilterByType DEFLATE text/plain

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/xml

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/xhtml+xml

AddOutputFilterByType DEFLATE application/rss+xml

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE application/x-javascript

[[Autres modules Apache]] == Prise en charge de php et wordpress :

sudo apt-get install libapache2-mod-fcgid

sudo apt-get install php5-cgi

Activez ensuite les modules correspondants :

sudo a2enmod fastcgi

sudo a2enmod proxy

# required for wordpress blog

sudo a2enmod rewrite

Chapitre 5 : Comment sécuriser le serveur Web Apache ?

La sécurisation de votre serveur Web est très importante, cela signifie :

  • Empêcher l’affichage de vos informations confidentielles ; 
  • Protéger vos données ;
  • Et restreindre l’accès.

Voici ci-dessous 7 éléments courants qui pourront améliorer la sécurité de vos serveurs Web Apache :

5.1. Masquer la version d’Apache et les informations sur le système d’exploitation

Généralement, Apache affiche sa version et le nom du système d’exploitation dans les erreurs.

Un pirate peut utiliser ces informations pour lancer une attaque en utilisant les vulnérabilités accessibles au public dans la version particulière du serveur ou du système d’exploitation.

Afin d’empêcher le serveur web Apache d’afficher ces informations, vous devez modifier l’option « signature du serveur » disponible dans le fichier de configuration apache. Par défaut, il est « ON« , vous devez le mettre « OFF« .

Vous pouvez aussi définir « ServerTokens Prod » qui indique au serveur Web de ne renvoyer qu’Apache et de supprimer les versions majeure et mineure du système d’exploitation.

Configuration Apache

Source : Unixmen

Après avoir modifié le fichier de configuration, vous devez redémarrer/recharger votre serveur web apache pour le rendre effectif.

5.2. Désactiver la liste des répertoires

Si le répertoire racine de votre document n’a pas de fichier d’index, par défaut, votre serveur Web apache affichera tout le contenu du répertoire racine du document.

Cette fonctionnalité peut être désactivée pour un répertoire spécifique via la « directive d’options » disponible dans le fichier de configuration d’Apache.

5.3. Désactiver les modules inutiles

Il est recommandé de désactiver tous les modules inutiles qui ne sont pas utilisés. Vous pouvez voir la liste des modules activés disponibles dans votre fichier de configuration apache.

De nombreux modules répertoriés peuvent être désactivés comme :

  • mod_imap ; 
  • mod_include ; 
  • mod_info ; 
  • mod_userdir ; 
  • mod_autoindex ;
  • etc. 

En effet, ils ne sont pratiquement pas utilisés par les serveurs Web de production.

Une fois que vous avez supprimé les modules qui ne sont pas utiles, enregistrez le fichier.

Redémarrez les services Apache avec la commande suivante :

/etc/init.d/httpd redémarrage

5.4. Restreindre l’accès aux fichiers en dehors du répertoire racine Web

Si vous souhaitez vous assurer que les fichiers situés en dehors du répertoire racine Web ne soient pas accessibles, vous devez vous assurer que le répertoire est restreint avec l’option « Autoriser » et « Refuser » dans le fichier de configuration de votre serveur Web.

Une fois que vous avez restreint l’accès en dehors du répertoire racine du Web, vous ne pourrez accéder à aucun fichier situé dans un autre dossier de votre serveur Web. Vous obtiendrez donc un code de retour 404.

5.5. Utiliser mod_evasive pour réfuter l’attaque DoS

Si vous souhaitez protéger votre serveur Web contre Dos (c’est-à-dire Denial of Service), vous devez activer le module mod_evasive

ModEvasive

Source : Ubiq

Il s’agit d’un module tiers qui détecte l’attaque Dos et l’empêche de faire autant de dégâts qu’elle en ferait si elle suivait son cours. 

Il pourrait être téléchargé ici : Télécharger le fichier ici.

5.6. Utiliser mod_security pour améliorer la sécurité apache

Ce module fonctionne comme un pare-feu pour Apache et vous permet de surveiller le trafic en temps réel. Il empêche également le serveur Web des attaques par force brute. 

modesecurity

Source : Solvps

Le module mod_security peut être installé avec le gestionnaire de paquets par défaut de votre distribution.

5.7. Limiter la taille des requêtes

Apache n’a aucune restriction sur la taille totale de la requête http qui pourrait conduire à une attaque DoS. Cependant, vous pouvez limiter la taille de la requête d’une directive Apache « LimitRequestBody » avec la balise directory. 

La valeur peut être définie entre 0 et 2 Go (c’est-à-dire 2147483647 octets) selon vos besoins.

Chapitre 6 : Architecture modulaire du serveur HTTP

Le serveur a une architecture modulaire composée :

  • d’un Core qui prend en charge les fonctions de base communes ; 
  • puis d’une série de modules propriétaires/tiers qui étendent ses fonctionnalités pouvant être activées ou désactivées dans une installation selon les besoins.

Parmi les plus connus on peut trouver auth_basic et mod_rewrite, qui sont ceux qu’un programmeur utilise le plus. La liste est en fait beaucoup plus longue. 

La liste complète des modules est visible dans l’index des modules disponible dans la documentation Apache :

Apache HTTP server project

Parmi les modules les plus importants, nous pouvons trouver les modules MPM (Multi-Processing-Module ou Multi-traitement en français) qui définissent l’architecture interne. 

La façon dont le travail est distribué peut varier en fonction du module mpm utilisé :

  • Multitraitement prefork (mpm-prefork) ;
  • Multitraitement worker (mpm-worker) ;
  • Multitraitement event (mpm-event) ;
  • Multitraitement ITK (mpm-itk).

Ces modules multitraitement (encore appelé MPM) sont ceux qui sont chargés de traiter les requêtes HTTP, de gérer les processus et les différents threads d’exécution de la prestation.

Le choix du module est une décision cruciale puisqu’il déterminera le bon fonctionnement ou non du serveur, en fonction de l’utilisation que vous souhaitez donner au serveur.

6.1. mpm_prefork

Le module utilisé par défaut par le serveur pour le traitement est mpm-prefork. Ce module ouvre différents processus pour organiser le travail. 

Il est considéré comme le plus sûr car il existe certaines configurations et modules qui ne sont pas sûrs à utiliser avec le traitement des threads. 

Par conséquent, il est plus sûr d’utiliser le serveur avec mpm-prefork qui au lieu d’ouvrir des threads ouvre des processus indépendants.

Apache MPM prefork

Bien que la sécurité soit gagnée, c’est aussi celui qui consomme le plus de ressources puisque les processus indépendants consomment beaucoup plus de CPU et de mémoire RAM que les threads.

6.2. mpm_worker

Ce module a de meilleures performances que mpm-prefork. Sa fonction est d’ouvrir plusieurs processus comme prefork, et chacun d’entre eux ouvre à leur tour différents threads pour répondre aux demandes.

Fondamentalement, il présente deux inconvénients : 

  • Le premier est qu’il a une gestion des erreurs plus médiocre que prefork et en cas d’échec d’un thread, il peut perdre des requêtes ;
  • Et le second est que tous les modules disponibles ne sont pas sûrs à utiliser dans ce mode.

Par exemple, la façon la plus simple de faire une configuration PHP dans Apache est via mod_php, mais ce module ne peut pas être utilisé avec Worker. Par conséquent, il doit être remplacé par un exemple de PHP-FPM

Apache PHP FPM

Source : Glowfrog Hosting

Ce dernier ajoute à son tour une amélioration dans l’utilisation de ressources, à la fois mémoire et CPU.

6.3. mpm_event

Event est assez similaire à mpm-worker en ce sens qu’il est basé sur celui-ci. Il se concentre sur l’amélioration des demandes persistantes pour lesquelles Worker n’est pas si bon.

Normalement une connexion sera fermée si elle n’a pas plus d’informations. Pour transmettre à nouveau une nouvelle connexion, cela implique une communication aller-retour pour établir certains paramètres.

Une fois la communication établie, il est beaucoup plus efficace de garder le canal ouvert. Cela se fait par le biais de requêtes Keep-Alive qui facilitent le maintien d’une connexion ouverte jusqu’à ce que le client ou le serveur décide de la fermer.

C’est en ce sens qu’Event surpasse Worker et pour le reste ils partagent les avantages ainsi que les inconvénients puisque Event se base sur Worker uniquement avec l’amélioration de ces requêtes.

6.4. mpm_itk

Il s’agit du module le plus récent et tout comme Prefork (qui fonctionne avec des processus enfants au lieu de threads), la principale innovation de ce module est qu’il permet d’attribuer à chaque VirtualHost (chaque domaine hébergé) un utilisateur.

Cette façon de séparer les sites avec différents utilisateurs permet :

  • à chaque site d’avoir ses propres autorisations de sécurité ;
  • et que les processus utilisateur ne puissent pas interagir les uns avec les autres, obtenant la confidentialité et la sécurité des données.

La même chose peut être obtenue avec PHP-FPM où chaque site peut fonctionner avec son utilisateur respectif. 

Néanmoins, la configuration de chacun est plus lourde et implique une plus grande utilisation de la mémoire puisqu’il existe un processus PHP-FPM pour chaque site.

Chapitre 7 : Autres questions posées sur le serveur Apache 

7.1. C’est quoi Apache ?

Apache2 HTTP Server est un serveur Web qui utilise le protocole http. Il est développé par Apache Software Foundation (ASF). Il est open source, multiplateforme (fonctionne sur différents systèmes d’exploitation), gratuit et téléchargeable. Le site du projet est www.apache.org.

7.2. Pourquoi Apache est-il si populaire ?

Apache est open source, et en tant que tel, il est développé et maintenu par un grand groupe de volontaires mondiaux. L’une des principales raisons pour lesquelles il est si populaire est que le logiciel peut être téléchargé et utilisé gratuitement par tous.

De plus, le serveur Web Apache est un environnement facile à personnaliser, il est rapide, fiable et hautement sécurisé. Cela fait de lui un choix courant pour les meilleures entreprises.

7.3. Comment savoir si mon serveur Apache fonctionne ?

  1. Accédez à votre serveur à l’aide de votre client SSH préféré.
  2. Entrez la commande suivante : sudo service apache2 status.
  3. Si Apache est en cours d’exécution, vous verrez le message suivant : Apache is running (pid 26874).

7.4. Que comprend Apache ?

Apache dispose de modules pour :

  • La sécurité ; 
  • La mise en cache ;
  • La réécriture d’URL ;
  • L’authentification par mot de passe ;
  • Etc. 

Vous pouvez également ajuster vos propres paramètres de serveur via un fichier appelé .htaccess, qui est un fichier de configuration Apache.

7.5. Comment le serveur Apache est-il installé ?

Pour installer apache en tant que service :

  1. Dans le menu Windows, recherchez : cmd ;
  2. Exécutez cmd avec les droits d’administrateur ;
  3. Allez dans le dossier \ apache \bin : cd c:\Apache24\bin.
  4. Installez le service avec l’instruction : httpd.exe -k install.
  5. Enfin lancez apache avec l’instruction : httpd.exe -k start.

7.6. Comment savoir si j’utilise Apache ?

Il existe plusieurs façons de connaître le logiciel utilisé par notre serveur, l’une d’elles consiste à utiliser des outils tels que GTMetrix, Pingdom…

La méthode la plus simple consisterait à analyser le site Web via Pingdom, à partir de la section Demandes de fichiers.

7.7. Quel port de communication le serveur Web Apache utilise-t-il ?

Par défaut, le serveur HTTP Apache est configuré pour écouter sur le port 80 pour les communications Web non sécurisées et sur le port 443 pour les communications Web sûres.

7.8. Quelles sont les versions d’Apache ?

Il existe actuellement trois versions d’Apache en cours d’ exécution : les versions 2.0, 2.2 et 2.4. Auparavant, il y avait la version 1.3 qui est la plus connue et celle qui signifiait la grande expansion du serveur.

7.9. Comment démarrer, redémarrer ou arrêter le serveur Apache ?

Pour démarrer, arrêter ou redémarrer Apache en tant que serveur Web, il vous suffit d’accéder au terminal de votre serveur via ssh et d’exécuter l’une des commandes suivantes :

  1. Démarrer Apache : /etc/init.d/ apache2 start.
  2. Redémarrer Apache : /etc/init.d/ apache2 restart.
  3. Arrêter Apache : /etc/init.d/apache2 stop . 5/5 – (3 voix)

7.10. Comment fonctionne Apache ?

En tant que serveur Web, Apache est chargé d’accepter les demandes d’annuaire (HTTP) des internautes et de leur envoyer les informations souhaitées sous forme de fichiers et de pages Web. 

La plupart des logiciels et du code du Web sont conçus pour fonctionner avec les fonctionnalités d’Apache.

7.11. Qu’est-ce que MySQL et PHP dans Apache ? 

Apache est le serveur Web qui traite les requêtes et sert les ressources Web ainsi que le contenu via HTTP. 

MySQL est la base de données qui stocke toutes vos informations dans un format facilement consultable.

PHP est le langage de programmation qui fonctionne avec Apache pour aider à créer du contenu Web dynamique.

7.12. Nginx peut-il remplacer Apache ?

Les deux solutions sont capables de gérer diverses charges de travail. Bien qu’Apache et Nginx partagent de nombreuses qualités, ils ne doivent pas être considérés comme entièrement interchangeables .

7.13. Nginx est-il identique à Apache ?

La principale différence entre Apache et NGINX réside dans leur architecture de conception

Apache utilise une approche axée sur les processus et crée un nouveau thread pour chaque requête. NGINX, par contre, utilise une architecture pilotée par les événements pour gérer plusieurs requêtes au sein d’un même thread.

En résumé 

Comme nous l’avons vu précédemment, Apache est le serveur Web avec lequel des milliers d’hébergeurs travaillent dans le monde.

Il est idéal pour les petites et moyennes entreprises qui souhaitent être présentes dans le monde numérique. Très compatible avec WordPress qui vous permet de travailler de manière simple et ordonnée.

J’espère que ce guide vous a aidé à peser le pour et le contre afin de prendre la bonne décision pour votre projet !

Merci pour la lecture et à bientôt !

Twaino Agence SEO

Augmentez votre chiffre d'affaires grâce au SEO avec l'agence Twaino

4 réflexions au sujet de “Serveur Apache : Guide Complet Pour Débutant”

  1. Cet article est incroyablement informatif et bien écrit. J’ai appris beaucoup de choses nouvelles grâce à lui, et je suis impatient de lire vos prochains articles.

    Répondre

Laisser un commentaire