IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Rewrite rule et load balancing Tomcat


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Par défaut Rewrite rule et load balancing Tomcat
    Bonjour, j'ai l'impression d'un énième post sur le load balancing d'Apache mais je n'ai rien trouvé sur la toile qui résolve mon pbme.

    Je veuxfaire du Load Balancing sur 2 Tomcats, jusque là tout va bien cela fonctionne avec plus ou moins d'options qui sont considérées ou pas par Apache.
    J'ai fait une servlet toute con et je regarde quel TomCat je tape en affichant un champ qui me dit si je suis sur le TomCat 1 ou 2. Le problème c'est que je n'arrive pas à garder le même serveur pour ma session, il alterne systématiquement ou bien va taper 3 fois dans l'un et passe à l'autre.
    J'ai essayé le stickysession, le ProxySet lbmethod, le status=+H, le loadfactor (qui fonctionne bien sauf qu'on tape prioritairement toujours le même serveur), le Header add Set-Cookie, le Rewrite Rule mais ca ne fonctionne pas comme je souhaite.

    J'avoue être un peu perdu par les options également et de ce que cela change vraiment !!!

    En 1er lieu si qq'un me dit qu'on peut le faire ou qu'il a un exemple probant je posterai si souhaité ma config VirtualHost

    Merci par avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Par défaut
    Je précise que j'ai bien cherché et regardé d'autres posts et exemples sur ce sujets du style http://www.developpez.net/forums/d62...e/#post3696215

    Mais cela ne fonctionne pas par ailleurs Je n'ai aucun cookie qui se positionne en retour chez le client

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Tu peux donner des détails sut ta conf de load balancing ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Par défaut
    En fait je voudrais utiliser le stickysession pour que lorsque j'attaque mon apache il me redirige toujours sur le même Tomcat qu'à la 1ere connexion ! J'essaye de positionner un cookie à renvoyer au client qui l'utilise à chaque requête pour cela mais ça ne semble pas tourner bien ! J'alterne toujours sur mes 2 Tomcats (connectés en ajp à l'Apache).
    J'essaye tout plein de combinaison de ce que je vois dans les forums mais à force je m'y perds.

    Voilà une dernière config essayée dans le httpd.conf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Listen <mon_port>
    NameVirtualHost <mon_ip>:<mon_port>
    <VirtualHost <mon_ip>:<mon_port>>
     
       <Proxy balancer://TomcatServers>
          BalancerMember ajp://<mon_ip>:<port_tomcat1>/ keepalive=on route=TomcatRoad1
          BalancerMember ajp://<mon_ip>:<port_tomcat2>/ keepalive=on route=TomcatRoad2
     
          ProxySet lbmethod=byrequests 
       </Proxy>
     
       ProxyPreserveHost On
       ProxyPass / balancer://TomcatServers stickysession=BALANCEID nofailover=ON
       ProxyPassReverse / balancer://TomcatServers
     
       Header add set-Cookie "BALANCEID=TomcatServers.%(BALANCER_WORKER_ROUTE)e# path=/; env=BALANCER_ROUTE_CHANGED
     
       RewriteEngine On
       RewriteRule .* - [CO=BALANCEID:balancer://TomcatServers.%(BALANCER_WORKER_ROUTE)e]
    </VirtualHost>

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Dans ton header add, pourquoi as-tu mis un condition sur la variable d'environnement BALANCER_ROUTE_CHANGED qui ne semble jamais positionnée ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Par défaut
    Je t'avoue que j'ai vu plein d'exemple où c'était écrit comme cela et les explications des directives et des options ne sont pas souvent explicites sur le site d'Apache !!!

    Sinon en effet je n'utilise pas de variable BALANCER_ROUTE_CHANGED
    pour moi c'était une condition pour re router la requête si un Tomcat tombe et qu'il doive refournir un cookie pour le nouveau Tomcat requis !!!

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    A regarder la discussion que tu donnais en référence, ta conf me semble incomplète. En particulier, il manque le nom du cookie dans ProxySet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Listen <mon_port>
    NameVirtualHost <mon_ip>:<mon_port>
    <VirtualHost <mon_ip>:<mon_port>>
     
       <Proxy balancer://TomcatServers>
          BalancerMember ajp://<mon_ip>:<port_tomcat1>/ keepalive=on route=TomcatRoad1
          BalancerMember ajp://<mon_ip>:<port_tomcat2>/ keepalive=on route=TomcatRoad2
     
          ProxySet lbmethod=byrequests stickysession=BALANCEID nofailover=ON
       </Proxy>
     
       ProxyPreserveHost On
       ProxyPass / balancer://TomcatServers/
       ProxyPassReverse / ajp://<mon_ip>:<port_tomcat1>/
       ProxyPassReverse / ajp://<mon_ip>:<port_tomcat2>/
     
       Header add set-Cookie "BALANCEID=TomcatServers.%{BALANCER_WORKER_ROUTE}e; path=/; env=BALANCER_ROUTE_CHANGED
    </VirtualHost>
    Je ne suis pas sûr pour les ProxyPassReverse. Et effectivement, après recherche, il semble qu'il faille conserver env=BALANCER_ROUTE_CHANGED. Mais avec des { } au lieu ( ) et un ; à la place de #.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Load balancing Tomcat 6
    Par bouyahya009 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 09/05/2011, 18h08
  2. Problème avec le load balancing Tomcat-Apache
    Par safi11 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 14/03/2011, 22h16
  3. Load balancing tomcat ?
    Par wadisnake dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 16/04/2009, 11h21
  4. Flex + BlazeDS + Tomcat + Hardware Load Balancer
    Par Tino13 dans le forum Flex
    Réponses: 1
    Dernier message: 17/02/2009, 17h07
  5. [Tomcat 5] Load Balancing
    Par Sniper37 dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 13/03/2006, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo