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

Blog Les Jeudis

Actualité Informatique et Digital

  • Annonces
    • Par région
    • Par métier
    • Par technologies
    • Par entreprise
    • Fiche métiers
  • Entreprises
  • Tests
  • 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.

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

About Korben

Manuel Dorne, plus connu sous le pseudonyme de Korben, est un blogueur français spécialisé dans l’informatique, la cybersécurité et la culture geek.
Il écrit sur son blog Korben.info pour plus d'un million de lecteurs par mois, participe à plusieurs podcasts et chaînes YouTube, et est l’auteur d’un livre sur l’addiction au smartphone. Entrepreneur, il est cofondateur de la société YesWeHack plateforme dédiée à la cybersécurité.

Previous Post: « Frameworks javascript: angular, react, vue, nodeJS Frameworks Javascript
Next Post: 6 conseils pour bien choisir votre thème WordPress les cms wordpress »

Reader Interactions

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée.

Sidebar

Rechercher

Nos Meilleurs Articles

MOA et MOE

MOA / MOE : Quelles sont les différences ?

développeurs front end et backend

Développement front-end et back-end : Quelles différences ?

lignes de code Java

‘Java’ est-il le meilleur langage de programmation pour les débutants?

vb net ou c# comme langage de programmation

C# ou VB .NET, le choix du langage

Comment utiliser le framework React JS

1033853617

Les frameworks de programmation les plus populaires en France 

Les métiers du marketing digital

Les métiers du marketing digital les plus demandés en 2019

signe langage python sur ordinateur portable

Web Scraping avec python

757797865

Qu’est-ce que le DevOps et en quoi consiste ce métier ?

smartphone et ordinateur avec banniere sur kotlin comment langage de developpement pour android

Kotlin pour le développement Android

Jeunes stagieres informatiques dans le domaine de la robotique

Le guide ultime pour bien préparer son stage informatique

Pourquoi choisir symfony pour un projet web featured banner 800px

Pourquoi choisir Symfony pour un projet web ? 

Categories

  • Blockchain (7)
  • Conseils (40)
  • Contenu Top (13)
  • Design (42)
  • Développement (136)
  • Digital (347)
  • E-commerce (11)
  • Evénements (26)
  • Interviews (30)
  • Marché de l'emploi (41)
  • Marketing (98)
  • Réseaux et Systèmes (19)
  • SEO (41)
  • Web (160)

Nos Categories

Blockchain

Conseils

Contenu Top

Design

Développement 

Digital

E-commerce

Evénements

Interviews

Marché de l’emploi

Marketing

Réseaux et Systèmes

SEO

Web

Candidats

Emploi par région

Emploi par métier

Emploi par technologie

Emploi par industrie

Emploi par type de contrat

Tous les emplois

Fiches métiers informatiques

Nos Services

S’inscrire

Annonces

Évènements

Tests

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

Nos Categories

Blockchain

Conseils

Contenu Top

Design

Digital

E-commerce

Evénements

Interviews

Marché de l’emploi

Marketing

Réseaux et Systèmes

SEO

Web

Candidats

Emploi par région

Emploi par métier

Emploi par technologie

Emploi par industrie

Emploi par type de contrat

Tous les emplois

Fiches métiers informatiques

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

Nos Services

S’inscrire

Annonces

Évènements

Tests

Magazine

Salon LesJeudis

Les Jeudis

© 2021 Groupe Les Jeudis