• 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, nodeJS Frameworks Javascript
Next Post: 6 conseils pour bien choisir votre thème WordPress les 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

un développeur de crypto devant l'ordinateur et le globe terrestre montrant différents symboles de crypto-monnaies

Le rapport sur l’activité des développeurs crypto

Des équipes de développeurs écoutent le MOE (Maîtrise d'œuvre) et la maîtrise d’ouvrage (MOA) valide les developpements informatiques menés par la maîtrise d’œuvre

MOA MOE : Quelles sont les différences ?

bases de données et tableaux de pagination sql

Pagination SQL : problèmes et solutions

ordinateur portable pro montrant code de programmation, services cloud et des charts statistiques

Le développement web et les développeurs web

Le processus du RPA (Robotic Process Automation)

La Robotic Process automation, aux frontières du machine learning et de l’IA

la jamstack: Javascript, APIs et code markup

La promesse de la Jamstack

Un programmeur en t-shirt 'code master' fait semblant d'utiliser des langages informatiques sur un panneau interactif

Comment se former au métier de développeur informatique ?

un développeur des jeux video

Comment trouver le job de ses rêves dans le gaming ?

illustration montre trois interfaces (UI) de dévelopeur front-end, mobile, et back-end: le développeur full stack

Le développeur full stack, un métier à tout faire

Data centre avec serveurs

La sécurité proactive dans le Cloud

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

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

un développeur travaille sur son ordinateur

Comment devenir Développeur frontend – une feuille de route

Categories

  • Blockchain (11)
  • Conseils (52)
  • Design (40)
  • Développement (141)
  • Digital (306)
  • Divers (6)
  • E-commerce (12)
  • Evénements (26)
  • Fiche métier (1)
  • Formation (6)
  • Interviews (38)
  • Marché de l'emploi (61)
  • Marketing (128)
  • Méthodologie (9)
  • Réseaux et Systèmes (23)
  • Web (149)

Nos Categories

Blockchain

Conseils

Méthodologies

Design

Développement 

Digital

E-commerce

Evénements

Formation

Interviews

Marché de l’emploi

Marketing

Réseaux et Systèmes

Web

Candidats

Emploi par région

Emploi par métier

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

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