Apache
Le projet Apache HTTP Server vise à développer et à maintenir des serveurs HTTP open source pour les systèmes d’exploitation modernes, notamment Windows et Unix dont Linux, Mac OS, Solaris ou encore BSD. L’objectif de ce projet est de fournir un serveur sécurisé, efficace et évolutif qui fournit des services HTTP en synchronisation avec la norme HTTP actuelle.
À découvrir dans cet article
Apache serveur HTTP
Apache est le serveur HTTP le plus utilisé sur le Web et existe depuis 1995, il a donc vu de nombreux correctifs et mises à jour au fil des ans. Apache s’exécute sur les systèmes d’exploitation moderne.
Vous disposerez de nombreux fichiers de configuration pour configurer votre serveur HTTP selon vos besoins. Parmi ses fonctionnalités phares, Apache supporte nativement les langages Ruby, Perl, PHP, Python et supporte les serveurs proxy. De plus, Apache est compatible avec de nombreux schémas et modules complémentaires, tels que les schémas Prefork, Event et Worker. Ceux-ci permettent de modifier certaines propriétés du serveur HTTP.
Spécifications
Spécification | Données |
---|---|
Editeur | The Apache Software Fondation |
Taille | 8.53 Mo |
Téléchargements | — |
Licence | Logiciel libre |
Catégories | Serveur |
Utilisation | Presque par tous |
Compatibilité | Avec tous les systèmes moderne |
Comment fonctionne Apache ?
Bien que le fonctionnement d’un serveur Web soit complexe, le travail de base de tous les serveurs Web consiste à accepter une demande d’un client (comme le navigateur Web d’un visiteur) et à envoyer une réponse à cette demande (comme la page que le visiteur s’attend à voir ).
Le serveur web Apache dispose de modules qui ajoutent plus de fonctionnalités à son logiciel, comme MPM (pour gérer le mode multiprocesseur) ou mod_ssl pour activer le support SSL v3 et TLS (lecture suggérée : TLS vs SSL). Certaines fonctionnalités communes d’Apache incluent :
- .htaccess
- IPv6
- FTP
- HTTP/2
- Perl, Lua et PHP
- Limitation de la bande passante
- WebDAV
- Équilibrage de charge
- Réécriture d’URL
- Suivi des sessions
- Géolocalisation basée sur l’adresse IP
Un serveur Web fait partie intégrante de tout site Web, mais gardez à l’esprit que la plupart des utilisateurs occasionnels de WordPress interagissent rarement directement avec un serveur Web.
Nginx en bref
Nginx est un puissant serveur web open-source reconnu pour sa rapidité, sa fiabilité et son efficacité énergétique. Conçu pour gérer des charges de trafic élevées, il excelle dans la distribution de contenu statique et dynamique, ainsi que dans la mise en cache. Son architecture modulaire et sa flexibilité permettent aux administrateurs système de le configurer selon leurs besoins spécifiques.
Nginx se distingue également par son équilibrage de charge, qui répartit intelligemment les requêtes entre plusieurs serveurs, améliorant ainsi les performances et garantissant la disponibilité du service. Son faible empreinte mémoire et son utilisation optimale des ressources en font un choix populaire pour les applications modernes, les sites web à fort trafic et les infrastructures cloud. De plus, Nginx offre un support natif pour les protocoles SSL/TLS, renforçant ainsi la sécurité des échanges de données. En résumé, Nginx représente un outil essentiel pour les professionnels cherchant à optimiser les performances de leurs serveurs et à garantir une expérience utilisateur fluide et fiable.
Statistiques d’utilisation Apache vs Nginx
Lorsque vous regardez tous les sites Web sur Internet, Apache est le serveur Web le plus populaire. Selon W3Techs, il alimente 47% des sites Web avec des serveurs Web connus.
Cependant, lorsque vous commencez à consulter des sites Web populaires, l’utilisation d’Apache chute considérablement. Apache n’a que le pouvoir :
- 27,1% des 100 000 sites les plus populaires
- 21,5% des 10 000 sites les plus populaires
- 16,2% des 1000 premiers sites
- Cette baisse peut être au moins en partie due à la référence inférieure d’Apache pour les sites à fort trafic.
Au lieu de cela, le serveur Web de Kinsta, NGINX, est utilisé par la plupart des sites à fort trafic :
- 56,1 % des 100 000 sites les plus populaires
- 63,2 % des 10 000 sites les plus populaires
- 57 % des 1 000 sites les plus populaires
Si vous regardez les tendances de recherche Google depuis 2004, vous verrez que cette tendance est celle où la popularité d’Apache (en tant que terme de recherche) diminue et NGINX augmente.
Comment vérifier quel serveur Web vous utilisez
Si vous voulez voir si vous utilisez Apache ou NGINX, vous pouvez souvent (mais pas toujours) vérifier les en-têtes HTTP de votre site Web.
Pour afficher les en-têtes HTTP de votre site Web, vous pouvez :
- Utilisation de l’onglet Réseau des outils de développement Chrome
- Utilisez des outils comme Pingdom ou GTmetrix
Cette méthode peut ne pas fonctionner si vous utilisez un service comme Cloudflare.
Quelques modules intéressants
Ces deux principaux modes de fonctionnement modifient considérablement les performances des serveurs HTTP.
Historiquement, Apache a fonctionné en préfork, ce qui signifie qu’un processus parent démarré avec des privilèges étendus (racine) démarre des processus enfants, et chaque processus enfant gérera un certain nombre de requêtes client. Cependant, sous Linux, une augmentation des processus entraîne une augmentation de la consommation de ressources (mémoire, descripteurs de fichiers).
En mode travailleur, Apache démarre les threads qui géreront les requêtes entrantes. La différence est qu’il s’agit d’un mode plus préemptif, où le processus parent prépare les ressources pour ses threads. Les modules développés par des tiers ou les bibliothèques utilisées par ces modules peuvent ne pas fonctionner dans un environnement multithread ; dans ce cas, ils peuvent être une source de panne s’ils sont utilisés avec le mode de travail.
Le module événements est disponible en production depuis la version 2.4. Il s’agit d’une opération dérivée du modèle de travail, sauf que les threads ne servent pas seulement les connexions client, mais peuvent également effectuer plusieurs tâches indépendamment de la connexion. Ainsi le concept de KeepAlive est mieux géré dans le sens où un thread n’attend plus qu’une connexion se termine pour servir un autre thread. Pour être plus clair, les threads servent les requêtes, pas les connexions.