Quelles sont les différences entre HAProxy et Ngnix en mode proxy inverse?

Réponses:

5

Mise à jour 2019:

Ce sont à la fois des produits stables et matures. HAProxy est dédié à l'équilibrage de charge et est meilleur dans ce domaine, tandis que nginx est un serveur Web qui peut agir comme un équilibreur de charge.

Tous les deux:

  • Prise en charge HTTPS
  • Prise en charge Websocket
  • Des produits stables, matures et très efficaces
  • Peut gérer les connexions 10k avec un réglage minimal ou nul

HAProxy:

  • Équilibrage de charge TCP, TCP-SSL, HTTP et HTTPS
  • Plus de flexibilité sur les contrôles d'intégrité et les conditions de basculement
  • Mise en cache de base (v1.8 - 2017)
  • Format de journal personnalisable, pour importer des journaux d'accès dans kibana / splunk / graylog
  • Page d'état détaillée, pour voir l'état des demandes actives et des serveurs
  • Métriques exportables, à intégrer aux solutions de monitoring (graphite / prometheus / datadog)
  • Plus orienté haute performance. Mieux indiqué pour gérer les connexions 100k ou les interfaces 40 GbE.

Nginx:

  • Équilibrage de charge HTTP et HTTPS (TCP - UDP dans l'édition payante)
  • Plus de flexibilité sur la mise en cache
  • Format de journal personnalisable, pour importer des journaux d'accès dans kibana / splunk / graylog
  • Aucune page d'état (édition payante uniquement)
  • Aucune métrique exportable (édition payante uniquement)
  • Peut servir des fichiers locaux
  • Peut servir les applications FastCGI (pas CGI)

HAProxy est un logiciel gratuit, entièrement open source. Ils gagnent de l'argent en vendant des appareils matériels avec HAProxy préinstallé.

Nginx est un noyau ouvert et de nombreuses fonctionnalités ne sont disponibles que dans l'édition payante. Il manque notamment une page d'état et des mesures de surveillance qui sont un gros NON NON pour faire fonctionner un équilibreur de charge.

user5994461
la source
42

HAProxy n'est vraiment qu'un équilibreur de charge / proxy inverse. Nginx est un serveur Web qui peut également fonctionner comme un proxy inverse.

Voici quelques différences:

HAProxy:

  • TCP ainsi que le proxy HTTP (SSL ajouté à partir de 1.5-dev12)
  • Plus d'options de limitation de débit
  • L'auteur répond ici aux questions sur Server Fault ;-)

Nginx :

  • Prend en charge SSL directement
  • Est également un serveur de mise en cache

Chez Stack Overflow, nous utilisons principalement HAProxy avec nginx pour le déchargement SSL, donc HAProxy est ma recommandation.

Kyle Brandt
la source
11

J'utilise nginx pour l'interface HAProxy, mais uniquement pour la terminaison SSL.

HAProxy est un équilibreur de charge beaucoup plus ajustable et gérable (d'après mon expérience).

J'intègre également Varnish pour la mise en cache d'objets statiques. (en tant que backend spécifique de HAProxy)

Voir cette question de panne de serveur pour plus d'informations. Commande de nginx / vernis / haproxy

Joel K
la source
3
Les dernières versions instables (septembre 2012) de HAProxy prennent désormais en charge SSL. (supprimant potentiellement mon besoin d'exécuter nginx)
Joel K
5

Si nécessaire uniquement pour l'équilibrage de charge, le proxy HA est préférable. Mais la combinaison de nginix et du proxy HA peut être plus utile, car nginix fournit rapidement du contenu statique, il servira toutes les demandes de données statiques, puis enverra toutes les demandes au proxy HA qui sert d'équilibreur de charge et envoie la demande au serveur Web pour servir demande en équilibrant la charge.

Mitesh
la source