2010-10-13 34 views
1

Supposons que j'ai 3 serveurs Web derrière un proxy inverse/loadbalancer. Actuellement, j'utilise Apache 2 mais cela ne me dérange pas de changer.Comment configurer proxy inverse/loadbalancer pour un routage personnalisé

Ces serveurs Web ne sont pas égaux. Ils ont différents ensembles de données locales, ce qui signifie que différents types de demandes seront traitées plus efficacement sur un serveur Web spécifique. Je veux brancher une logique de routage personnalisée dans mon loadbalancer, qui, au début d'une nouvelle session, choisirait un serveur web, puis relierait cette session à ce nœud jusqu'à ce qu'il tombe en panne (session collante). Par exemple: un nouvel utilisateur vient à la webapp, l'équilibreur de charge exécute mon code personnalisé d'une manière ou d'une autre, ce code trouve des informations sur cet utilisateur et conclut que cet utilisateur doit être géré sur node1. L'équilibreur transfère cet utilisateur à node1 et le colle à lui. Quand un autre utilisateur arrive, la logique de routage personnalisée suggère node3, à laquelle loadbalancer puis proxy à cet utilisateur.

Est-il possible de faire avec Apache 2? Si non, quel proxy/loadbalancer me donnerait cette capacité?

Merci.

+0

Vous obtiendrez une meilleure aide sur Server Fault. :) – bzlm

+0

@artemb, as-tu réussi à réaliser ce que tu voulais? –

Répondre

0

Apache mode_proxy_balancer a stickyness si vous voulez rester sur apache. En revanche, regardez Haproxy. La première ligne des états abstraits: "achemine les requêtes HTTP en fonction des cookies affectés statiquement;" Il vous suffit de définir un cookie pour savoir quel backend vous souhaitez que l'utilisateur soit bloqué.

+0

La question concernait le routage personnalisé (routage de la requête _first_ sur un nœud particulier), et non le stickyness (acheminement des demandes subséquentes au même nœud que le premier). –