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

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Points : 42
    Points
    42
    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 du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Points : 42
    Points
    42
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu peux donner des détails sut ta conf de load balancing ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Points : 42
    Points
    42
    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
    Points : 12 977
    Points
    12 977
    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 ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Points : 42
    Points
    42
    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
    Points : 12 977
    Points
    12 977
    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 #.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Points : 42
    Points
    42
    Par défaut
    Cela fait toujours la même chose (j'avais bien mis des accolades et pas des parenthèses) ! Alors j'ai p-e oublié de dire que j'ai l'apache et les 2 Tomcats sur la même machine (j'ai qu'une machine pour tester ca )

    Est ce que les 2 lignes suivantes sont nécessaires au passage ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       RewriteEngine On
       RewriteRule .* - [CO=BALANCEID:balancer://TomcatServers.%(BALANCER_WORKER_ROUTE)e]

  9. #9
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Points : 102
    Points
    102
    Par défaut
    Peut-être que tu ne vas pas aimer l'idée, mais tu pourrais utiliser haproxy, c'est pas si mal pour ce que tu veux faire mais aussi ça accepte pas mal de paramètre pour "rester sur le même serveur en fonction des cookies/session".

    Tu peux aussi voir pour utiliser memcache pour tes sessions et ainsi ne plus avoir ce problème assez simplement.

  10. #10
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par chrime71 Voir le message
    Est ce que les 2 lignes suivantes sont nécessaires au passage ?
    Je ne pense pas, c'est pour ça que je ne les ai pas mises dans la conf que je donne.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Points : 42
    Points
    42
    Par défaut
    En effet je les avais laissées, en les retirant en effet je tape sur le même Tomcat donc déjà Yahoooo Merci Mac pour ce 1er pbme résolu !!

    Oui 1er car maintenant si je tue un Tomcat Apache ne load balance pas sur l'autre ... hé hé; il doit me manquer qque chose pour rediriger en cas de non aboutissement !!!

  12. #12
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah, peut-être à cause du nofailover=ON ? Si tu retires ce paramètre, il se passe quoi ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 72
    Points : 42
    Points
    42
    Par défaut


    Je pense que tu dois avoir une montagne de cadeau chez toi à force de résoudre les problèmes Apache

    Merci Mac ca tourne maintenant comme souhaité !! J'étais pas loin avec mes essais mais pas dans le bon ordre ou une option en trop.

+ 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, 19h08
  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, 23h16
  3. Load balancing tomcat ?
    Par wadisnake dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 16/04/2009, 12h21
  4. Flex + BlazeDS + Tomcat + Hardware Load Balancer
    Par Tino13 dans le forum Flex
    Réponses: 1
    Dernier message: 17/02/2009, 18h07
  5. [Tomcat 5] Load Balancing
    Par Sniper37 dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 13/03/2006, 12h20

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