• Skip to main content
  • Skip to header right navigation
  • Skip to after header navigation
  • Skip to site footer
  • Facebook
  • Twitter
  • Instagram
Lesjeudis

Blog Les Jeudis

Actualité Informatique et Digital

  • Annonces
    • Par région
    • Par métier
    • Par technologies
    • Par entreprise
    • Fiche métiers
  • Entreprises
  • News
  • Se connecter
  • Déposer CV
  • Recruteur
    • Connexion Recruteurs
    • Employeurs
    • Trouvez des CVs
    • Postez des offres
  • Categories du Blog
    • Développement
    • Réseaux et Systèmes
    • Digital
    • E-commerce
    • Marché de l’emploi
    • Conseils
    • Evénements
    • Design
    • Marketing
    • Interviews
    • —-
  • Annonces
    • Toutes nos offres d’emploi
    • par région
    • par métier
    • par technologies
    • par sociétés
    • Par Industries
    • Fiches Métiers
  • Entreprises
  • Tests
  • offres recommandées
  • Se connecter
  • Déposez CV
  • Employeurs
    • Connexion recruteurs
    • Employeurs
    • Trouvez des CVs
    • Postez des offres
  • Développement
  • Réseaux et Systèmes
  • Digital
  • E-commerce
  • Marché de l’emploi
  • Conseils
  • Evénements
  • Design
nginx vs apache

Apache vs. Nginx ? Comment réaliser un comparatif réaliste

10/03/2021 par Korben

Il y a un petit moment maintenant, avec Léo nous avons revu l’architecture serveur de Korben.info l’un des choix que nous avons du faire concernait le serveur web. Un choix assez classique pour les experts du web et les devOps, mais  surtout l’occasion de vous offrir le retour de Léo en matière de comparatif entre Apache ou Ninx.

En effet, beaucoup de benchmarks trouvables en ligne utilisent la configuration par défaut des serveurs. Mais ces configurations sont-elles comparables ? Comment d’y retrouver quand on est un développeur soucieux de son environnement technique ?


Depuis que Léo est tombé sur les dépôts GitHub de H5BP, un groupe de dev bénévoles qui font un super travail en proposant des bases de configuration les plus en adéquation possible avec les standards web, il est possible d’avoir une base solide de comparaison. 

Grâce à ces configurations proposées, vous obtenez ainsi des réponses HTTP très homogènes et impeccables, quel que soit le logiciel utilisé comme serveur.

Et en particulier des configurations pour Apache httpd et Nginx, les deux principaux serveurs web. Et on obtient donc 3 configurations vraiment comparables, car parfaitement calibrées pour une utilisation à destination du web.

  • Un Nginx conforme
  • Un Apache httpd conforme
  • Un Apache httpd via un .htaccess conforme

Léo s’est amusé à faire de tests de performance sur les trois configurations, pour se faire une idée, et vous partager les résultats. 

Il a d’abord fais tourner un outil de test nommé k6 (open source, dédié aux tests de charge) pendant 20 secondes avec une montée en puissance. Pour cela, on écrit un petit script pour manipuler k6, qui utilise un moteur JavaScript.

import { check } from 'k6'
import * as http from 'k6/http'

export const options = {
  stages: [
    { duration: '10s', target: 100 },
    { duration: '5s', target: 100 },
    { duration: '5s', target: 0 }
  ],
  thresholds: {
    checks: [{
      threshold: 'rate>0.1',
      abortOnFail: true
    }]
  },
  hosts: {
    'server.localhost': '127.0.0.1'
  }
}

export default function () {
  check(http.get('http://server.localhost/test.html'), {
    'is status 200': (r) => r.status === 200
  })
}

Chacune de ses configurations a donc reçu environ 50 000 requêtes, puis il a extrait la mesure de la durée de la requête.

Pour visualiser les résultats, il a choisi d’agréger les valeurs dans des diagrammes boîte à moustaches (oui c’est rigolo comme nom). Pour rappel, une boite à moustache est structurée de la manière suivante.

diagrammes boîte à moustaches

Comme outils pour construire ce type de diagramme, il utilise notamment un notebook Jupiter. Basé sur Python, c’est l’environnement idéal pour des manipulations statistiques sans prise de tête. Pour les curieux, le notebook est disponible dans un gist.

graph httaccess, httpd and nginx

Comparatif des temps de réponse en millisecondes des trois configurations en boites à moustache sur axe logarithmique.Si les médianes (lignes rouges) ne sont pas très éloignées les unes des autres, l’utilisation d’un fichier .htaccess amène quand même beaucoup de ralentissement.

Un maximum à 95% plus élevé, un écart-type plus grand (illustrant des temps de réponse moins prévisibles). Les points au delà de la limite à 95% sont considérés comme aberrants, mais leur présence plus marquée avec le .htaccess renforce le sentiment d’instabilité.

Dès que le module d’interprétation des .htaccess est désactivé, httpd et nginx sont vraiment similaires en termes de performance.

Léger gain pour nginx, un poil plus étalé vers le bas, ce qui n’est pas sans illustrer son potentiel de cache. Ce test a permis, entre autres, la sélection du serveur en place sur Korben.info.

Ainsi, nous avons choisi nginx qui, avec ses fonctionnalités de cache avancées, à une efficacité redoutable lors des montées en charge.Bien sûr, sa configuration repose en grande partie sur le boilerplate H5BP.

En tant que mainteneur de ces configurations H5BP, Léo aussi mis en place des benchmarks automatiques sur chacun de dépôts à l’aide de h5bp/server-configs-test, pour suivre l’évolution de ces configurations et des logiciels au fil des années.

J’espère que cet article technique vous aura permis en tant que développeur d’y voir un peu plus clair sur Apache et Nginx et notamment sur la méthode que vous pouvez mettre en place pour justement comparer leurs performances et leur comportement avec votre applicatif de manière égalitaire.

Si vous avez des questions, rendez-vous sur le forum de Korben.

Categorie: Développement, Réseaux et Systèmes

About Korben

Manuel Dorne, aussi connu comment Korben dans l’industrie technologique française. Il est un blogueur connu dans des conférences et des événements informatiques. Il est également auteur de livres et youtubeur.
La spécialité de Korben est la cybersécurité et la culture geek.
Manuel gère et dirige Korben.info, un blog technique avec une audience de plus d’un million de personnes.
Korben participe souvent à des programmes de podcasts et publie de nombreux contenus sur différentes chaînes YouTube.
Manuel (korben) est le co-fondateur de ‘YesWeHack’ une société spécialisée dans la cybersécurité.

Previous Post:Frameworks javascript: angular, react, vue, nodeJSFrameworks Javascript
Next Post:6 conseils pour bien choisir votre thème WordPressles cms wordpress

Reader Interactions

Comments

  1. Aureliano

    09/07/2021 at 08:26

    Merci. Très intéressant et beaucoup de pistes utiles pour approfondir.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Sidebar

Rechercher

Nos Meilleurs Articles

Carrière en Cybersecurité

Faire carrière en cybersécurité

Bannière commandes Linux

Les commandes Linux de base à connaître absolument

Les métiers les plus demandés de l'informatique

Les métiers de l’informatique les plus demandés en 2023

Bannière Développement de jeu vidéo

Développement de jeux vidéo : Ce qu’il faut savoir

Bannière Audit Informatique - Un diagnostic indispensable pour une enterprise

Pourquoi faire un audit informatique en entreprise ?

Bannière Réseau Informatique et 'data center'

Fonctionnement d’un réseau informatique : Ce qu’il faut savoir

Bannière Securité PHP

Découvrez 9 importantes failles de sécurité de PHP ainsi que les moyens de les corriger

Bannière Langages de Programmation

Langages de programmation les mieux payés en 2023 : Top 10

Gatsby JS

JAMstack avec Gatsby, Netlify et Netlify CMS

Modeles React JS

10 modèles React gratuits que vous pouvez utiliser pour vos projets

les couches ou layers de la blockchain

Les layers de blockchain (L0, L1, L2, L3)

bannière Ingénieur développement

Ingénieur développement

Categories

  • Blockchain (11)
  • Conseils (52)
  • Design (39)
  • Développement (150)
  • Digital (305)
  • Divers (6)
  • E-commerce (12)
  • Evénements (25)
  • Fiche métier (1)
  • Formation (9)
  • Interviews (36)
  • Marché de l'emploi (60)
  • Marketing (127)
  • Méthodologie (9)
  • Réseaux et Systèmes (27)
  • Web (149)

Nos Categories

Blockchain

Conseils

Méthodologies

Design

Développement 

Digital

E-commerce

Evénements

Formation

interview

Marché de l’emploi

Marketing

Réseaux et Systèmes

Website

Candidats

Employment by region

Employment by profession

Emploi par technologie

Emploi par type de contrat

Tous les emplois

Fiches métiers informatiques

Nos Services

S’inscrire

Annonces

Magazine

Salon LesJeudis

Support

Nous contacter

Vous êtes recruteur ?

A Propos

Conditions générales d’utilisation

Politique de confidentialité

Droit d’accès aux données 

Personnelles

Social

Facebook

Twitter

Linkedi

Les Jeudis

© 2021 Groupe Les Jeudis