collant session avec le serveur web apache et tomcat serveurs
Je suis en utilisant le serveur web apache comme un équilibreur de charge pour les deux instances tomcat derrière apache. Lorsque la première demande est transmise à Un nœud et de la deuxième demande de la même client va vers le nœud B, je ne peux pas accès aux variables de session dans le nœud A. C'est évident. J'ai surfé sur internet et a trouvé que l'activation de collant de séances de l'aide. Mais tous les tutoriels pour permettre le collant sessions dans apache sembler confus. Est-il une simple étape par étape tutoriel pour cela? S'il vous plaît aider.
Fragment de Code de commentaire:
ProxyPass /balancer-manager !
ProxyPass /balancer://mycluster/stickysession=JSESSIONID
ProxyPassReverse /balancer://mycluster/
<Proxy balancer://mycluster>;
BalancerMember ajp://localhost:9001/route=NodeA1000 retry=10
BalancerMember ajp://localhost:9002/route=NodeB1000 retry=10
</Proxy>
Vous devez vous connecter pour publier un commentaire.
Pour apache httpd pour garder vos séances lié à la même backend, il a besoin de savoir quel cookie conserve l'ID de session. Pour java, c'est (généralement) JSESSIONID.
Si vous êtes à l'aide de la
ProxyPass
directive, l'utilisationÊtre trouvé dans l'excellent apache httpd documentation.
code
ProxyPass /équilibreur-manager ! ProxyPass / balancer://mon-cluster/ stickysession=JSESSIONID ProxyPassReverse / balancer://mon-cluster/ <Proxy balancer://mon-cluster>; BalancerMember ajp://localhost:9001/ parcours=NodeA1000 retry=10 BalancerMember ajp://localhost:9002/ parcours=NodeB1000 retry=10 </Proxy>code
ProxyPassReverseCookiePath
: httpd.apache.org/docs/trunk/mod/...Cela a fonctionné pour moi...
Au lieu d'utiliser stickysession=JSESSIONID dans la directive ProxyPass il doit être réglé dans un équilibreur de configuration à l'aide de ProxySet stickysession=JSESSIONID:
Il a été pas de travail pour moi quand je l'utilise dans la directive ProxyPass comme indiqué ci-dessous:
Cela devrait être ajoutée à apache, docs, parce que c'est une douleur à résoudre.
Pls essayer cela, je suis sûr que cela fonctionnera pour vous.
Étape 1: Ajouter le code ci-dessous dans httpd.conf:
Étape 2: Ajoutez le code ci-dessous dans le serveur.conf:
C'est un problème que j'ai rencontré trop - si vous définissez vos balancer à l'intérieur d'un serveur virtuel, puis il semble qu'il utilise le stickysession comme documenté. Toutefois, si vous êtes à la définition d'un programme d'équilibrage de l'extérieur de l'hôte virtuel est utilisé dans les puis le stickysession est perdu, donc vous devez les définir à l'aide de ProxySet au sein de l'équilibreur de lui-même.
Je pense que votre problème est que vous utilisez mybalancer où vous avez tu utiliser un équilibreur: