HAProxy Nginx Traefik

HAProxy, NGINX ou Traefik ? Quel reverse proxy choisir ?

Entre HAProxy, NGINX ou Traefik, quel Reverse Proxy (proxy inversé) choisir en 2020 ? Certains les appellent aussi les Load Balancers, mais leurs fonctions vont maintenant bien au-delà. Tout d’abord, il ne s’agit pas ici d’un véritable comparatif, dans le sens je n’ai pas pris le temps de comparer leurs fonctionnalités. Mais plutôt un partage d’expérience et si certains d’entre vous souhaitent exprimer leur point de vue, cette page s’enrichira.

Tout d’abord, j’ai commencé à utiliser NGINX comme reverse proxy avec l’utilisation de container Docker. Simple, rapide, léger et une gestion du cache performante pour les fichiers statiques. Seulement avec le temps, j’ai rencontré des limites dans la stratégie de Load Balancing, sa capacité à « monitorer ». En fait avec le temps, le service gratuit de Nginx nous pousse vers l’offre payante de Nginx+. Aujourd’hui, j’ai besoin d’un Reverse Proxy fiable, rapide, avec une stratégie de Load Balacing fine et facile à mettre en place.

HAProxy, NGINX ou Traefik ?

En fait, NGINX a très bien répondu à mon besoin au lancement des projets. Et l’éditeur le sait bien ! Il me donne un avant-goût de sa solution payante NGINX+ et espère qu’avec la montée en puissance des projets, je passe à l’offre payante NGINX+. C’est une stratégie commerciale très fréquente.

Seulement, HAProxy offre ces fonctionnalités gratuitement. La stratégie de Load Balancing dispose de nombreuses options. Des statistiques par Backend, une reconfiguration à la volée, l’intégration de Docker et surtout un point essentiel dans mon cas, des performances au top ! Enfin, HAProxy dispose d’une page de monitoring complète avec des informations pertinentes et utiles. Alors que Nginx ne dispose pas vraiment d’outils de monitoring dans sa version gratuite. Enfin HAProxy dispose d’une page Github avec une communauté active, c’est un gage de confiance. Mais HAProxy dispose aussi d’une version payante, vous trouverez plus détails sur les différences entre HAProxy enterprise et HAProxy community avec ce lien.

Mais NGINX et HAProxy ont un autre concurrent, plus jeune, qui les attaquent sous un angle différent.

Traefik, le nouveau reverse proxy pour Docker et Kubernetes

Mise à jour avril 2022

Depuis l’écriture de cet article, les projets ont beaucoup évolué. Le nombre de container ne cesse d’évoluer et Traefik à évoluer. Aujourd’hui, il est de plus en plus utilisé dans nos environnements. La principale critique qu’on puisse faire à Traefik est l’absence de cache HTTP dans sa version gratuite, si vous ne passez pas à la version payante Enterprise, il faudra donc trouver une solution alternative.

Cependant il offre de nombreuses fonctionnalités qui facilitent l’intégration de Docker et de multiples services comme Cloudflare. C’est pour nos besoins, la solution que nous privilégions actuellement, malgré l’absence de cache HTTP dans la version gratuite. Pour le cache HTTP, nous nous appuyons sur Nginx (derrière Traefik) même si ce n’est pas la solution idéale.

Traefik est un projet assez jeune qui s’adresse directement à ceux qui font tourner leurs applications dans des conteneurs. C’est un équilibreur de charge (Load Balanceur) associé à des méthodes et des outils de découverte de services, une reconfiguration à la volée, des logs complets et un système de monitoring modernes. Tous les éléments essentiels pour maintenir facilement et efficacement un ensemble de services ou micro-services.

Enfin Traefik s’améliore d’année en année. Mais il est encore difficile de départager HAProxy et Traefik, HAProxy offre des performances sans égal, ce qui pour des sites à fort trafic est une donnée essentielle. Traefik est passé à la version 2, malgré cela les performances sont toujours en retrait par rapport à HAProxy comme le montre ces Benchmark de Reverse Proxy. Ce qui ne vaut pas dire que Traefik doit être écarté, il a malgré tout de nombreux avantages. Peut-être qu’avec le temps, ses performances s’amélioreront encore.

Pour conclure, j’ai tendance à préférer Traefik, pour ses fichiers de configuration, la logique de son paramétrage et l’intégration de Docker / Kubernetes. Mais surtout Traefik devient la solution idéale lorsque je charge/décharge des containers, c’est le seul qui me permet de gérer simplement les ports dynamiquement. Seulement, les performances sont un véritable frein, j’utilise pour l’instant les deux, HAProxy reste utiliser pour la majorité des projets et Traefik est de plus en plus présent dans les stacks, surtout lorsque les containers se charge/décharge dynamiquement. Concernant NGINX en tant que Proxy, je l’utilise de moins en moins, mais il reste une très bonne solution en tant que serveur Web pour servir les fichiers statiques ou gérer les caches.

Vous avez des retours d’expérience sur Traefik et HAProxy ? N’hésitez pas à les partager dans les commentaires pour enrichir cette page.

A lire aussi

A lire également

4.5 2 votes
Article Rating
S’abonner
Notification pour
guest

2 Comments
Le plus populaire
Le plus récent Le plus ancien
Commentaires en ligne
Afficher tous les commentaires