3 votes

Un répartiteur de charge (hw) peut-il contrôler les codes d'état HTTP ?

Nous développons actuellement plusieurs sites web en utilisant 2 serveurs web front-end (utilisant apache et tomcat/jboss) avec un loadbalancer en face d'eux. Comme je suis un programmeur et non un administrateur système, je ne peux que deviner ce qu'un loadbalancer matériel décent est capable de faire. Je me demandais si un loadbalancer matériel pouvait vérifier les codes d'état HTTP, de sorte que le trafic soit redirigé vers un seul serveur si l'autre est hors service pour maintenance (qui envoie maintenant un code d'erreur HTTP 503).

Gracias.

Ben

8voto

Zameer Manji Points 1213

Oui, pratiquement tous les équilibreurs de charge le font. La plupart des répartiteurs de charge vont plus loin et mettent hors service un serveur HTTP mort :

  • s'interrompt ou ne répond pas à la demande de TCP/IP.
  • ne répond pas avec un HTTP valide dans un délai défini, c'est-à-dire que le socket TCP est connecté mais qu'il n'y a pas de HTTP, ou que HTTP envoie un 200 OK mais ne répond pas aux OPTIONS HTTP, etc.
  • si une page d'état spécifique ne contient pas une chaîne de texte spécifique prédéfinie / ne correspond pas à un hachage MD5 prédéfini. C'est très pratique pour vérifier que la connexion à la base de données est active (en programmant une simple page qui lit des données de la base de données et les affiche).

Edita: En outre, les bons équilibreurs de charge disposent d'un moyen simple de mettre un serveur en mode maintenance, c'est-à-dire que l'équilibreur de charge cessera d'envoyer de nouvelles requêtes à ce serveur et affichera dans son interface utilisateur le moment où le serveur cessera d'avoir du trafic. Vous pouvez alors librement effectuer la maintenance nécessaire sur le serveur, avant de le remettre en service.

En outre, la plupart des équilibreurs de charge ont un concept de serveur d'urgence, c'est-à-dire que si tous les serveurs HTTP normaux sont en panne, tout le trafic sera envoyé à un serveur d'urgence désigné sur votre réseau local, qui peut alors fournir une page statique "nous sommes en panne pour cause de maintenance, revenez plus tard".

Coyote Point fabrique de bons équilibreurs de charge bas de gamme IMHO. Il existe de nombreux autres fournisseurs d'équilibreurs de charge bas de gamme ; Barracuda en est un exemple. Le terme "bas de gamme" n'est pas négatif dans ce contexte, c'est simplement que le marché est divisé en deux :

  • les vendeurs "bas de gamme", qui facturent généralement au maximum 20000 USD pour leurs produits haut de gamme, et qui vendent à la fois directement et par l'intermédiaire de petits revendeurs.
  • les "vendeurs d'entreprise" comme F5, Cisco, Foundry, etc. qui peuvent facturer beaucoup plus cher et utiliser un modèle de vente de marque de prestige.

Si le propriétaire n'a pas de compétences d'administrateur système en interne, l'achat d'un appareil nécessitant peu de maintenance est très judicieux. Si vous êtes prêt et capable de mettre en place un serveur Unix, alors prenez un regardez ce post . Si vous utilisez Microsoft Windows, alors Microsoft Acheminement des demandes La version 1 ou 2 (beta) pourrait être une bonne solution (je ne les connais pas très bien).

1voto

RainyRat Points 3680

Apache/tomcat le peut certainement - regardez la documentation pour "fail_on_status".

1voto

Nick Anderson Points 669

Les répartiteurs de charge BigIP peuvent le faire. Mais il n'est pas nécessaire d'avoir un gros matériel LB pour avoir de bonnes performances. Consultez nginx et varnish. Varnish a été spécifiquement écrit comme un équilibreur de charge avec mise en cache et est hautement configurable. http://varnish.projects.linpro.no/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X