Apache

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.

Table des matières

  1. Apache serveur HTTP
  2. Spécifications
  3. Comment fonctionne Apache ?
  4. Statistiques d’utilisation Apache vs Nginx
  5. Comment vérifier quel serveur Web vous utilisez
  6. Quelques modules intéressants

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.

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.

redaction

Laisser votre commentaire

A propos de

Angle Formation ont mis leurs compétences et toute leur énergie à partager avec vous une page qui immerge dans les nouvelles technologies.

Publications récentes

Suivez nous

Didacticiel vidéo

Inscrivez-vous à notre newsletter

En envoyez votre adresse de courriel électronique vous acceptez que nous vous envoyer les nouveaux articles par mail de ce site