Config Apache 2 en multiple job handler

Fermé
Julie - 24 mai 2012 à 10:52
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 26 mai 2012 à 13:24
Bonjour,

Je suis sous ubuntu 12.04


J'ai une application qui est configurée pour tourner avec apache 2;
Dans le fichier /etc/apache2/sites-available/default, j'avais configuré ainsi :
RewriteEngine on
RewriteRule ^/galaxy$ /galaxy/ [R] #pour mettre mon appli dans un sub directory
RewriteRule ^/galaxy/(.*) http://localhost:8081$1 [P]
<Proxy http://localhost:8081>
Order deny,allow
Allow from all
</Proxy>


Et pour me connecter à mon application je lançais un firefox et me connectais via l'adresse : http://localhost:8081/galaxy

Maintenant j'ai configuré mon appli pour qu'elle tourne avec un job manager et plusieurs job handlers, j'ai donc ajouté les lignes suivantes dans mon fichier default et supprimé les anciennes instructions proxy:

<Proxy balancer://galaxy>
BalancerMember http://localhost:8080
BalancerMember http://localhost:8081
BalancerMember http://localhost:8082
BalancerMember http://localhost:8083
</Proxy>

J'ai remplacé cette ligne :
RewriteRule ^/galaxy/(.*) http://localhost:8081$1 [P]

par ces lignes :
RewriteRule ^/galaxy(.*) balancer://galaxy$1 [P]
RewriteRule ^/galaxy/admin/jobs(.*) http://localhost:8079/admin/jobs$1 [P]


J'ai deux questions :

1. Quelle adresse dois-je taper dans mon navigateur pour accéder à mon appli dans le cas de multi job handler ? Est-ce localhost/galaxy ou localhost/8079 (le job manager) ? ou autre chose?

2. Ma configuration est-elle bonne car quand je lance mon appli ca ne semble pas me lancer correctement les : comme je suis dans un subderectory galaxy, dois-je écrire
RewriteRule ^/galaxy/admin/jobs(.*) http://localhost:8079/admin/jobs$1 [P]
ou
RewriteRule ^/galaxy/admin/jobs(.*) http://localhost:8079/galaxy/admin/jobs$1 [P]?

Faut-il que je remette els anciennes instructions de proxy <Proxy localhost> sans préciser le port cette fois ou en précisant juste le port manager ?

Merci d'avance.
julie
A voir également:

3 réponses

mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 7 806
25 mai 2012 à 10:30
1) Je ne connais pas cette extension apache, mais si tu regardes cet exemple :
http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html

... pour moi on se connecte à un serveur apache qui écoute mettons sur 11.22.33.44:80 et qui équilibre le trafic vers deux apaches tiers (http://192.168.1.50:80 et http://192.168.1.51:80)

Pour moi il faudrait simplement remplacer "<Proxy http://localhost:8081>" par "<Proxy http://localhost:80>" et ainsi, se connecter au port 80 (http://localhost/galaxy = http://localhost/galaxy:80) équilibrera le trafic vers les ports 8080 à 8083. Ceci dit je peux me tromper, donc prends le temps de vérifier ce que j'avance.

2) Le mieux c'est de voir comment tes règles te redirigent et si ça correspond à ton besoin :
http://blog.logeek.fr/2007/12/31/how-to-debug-rewrite-rules-with-apache

Bonne chance
0
Merci pour votre réponse
Mais en fait je souhaite écouter toujorus la meme adresse ip sur des ports différents du coup j'ai l'impression que je ne peux pas utiliser votre réponse.
De plus j'ai testé en ne laissant que Proxy localhost:80 et ca ne fionctionne pas non plus.
Quelqu'un aurait une idée?
Merci
0
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 7 806
Modifié par mamiemando le 26/05/2012 à 13:25
Je ne vois pas en quoi ce que j'ai expliqué juste avant empêche d'avoir les balancers members sur la même machine. Ce qui identifie un membre c'est son nom d'hôte (son ip) et son port. Il faut juste que chaque membre et le proxy aient des couples (ip, port) différent.

Tu as d'ailleurs un exemple ici :
https://www.playframework.com/documentation/2.0/HTTPServer

<VirtualHost mysuperwebapp.com:80> 
  ServerName mysuperwebapp.com 
  <Location /balancer-manager> 
    SetHandler balancer-manager 
    Order Deny,Allow 
    Deny from all 
    Allow from .mysuperwebapp.com 
  </Location> 
  <Proxy balancer://mycluster> 
    BalancerMember http://localhost:9999 
    BalancerMember http://localhost:9998 status=+H 
  </Proxy> 
  <Proxy *> 
    Order Allow,Deny 
    Allow From All 
  </Proxy> 
  ProxyPreserveHost On 
  ProxyPass /balancer-manager ! 
  ProxyPass / balancer://mycluster/ 
  ProxyPassReverse / http://localhost:9999/ 
  ProxyPassReverse / http://localhost:9998/ 
</VirtualHost>


Comme tu le vois le trafic reçu sur le port 80 de mysuperwebapp.com est redirigé vers localhost -donc la machine redirige son trafic vers elle-même-, dans cet exemple vers les ports 9999 et 9998.

Pense à relancer apache quand tu modifies la configuration de tes vhosts (service apache2 reload ou service apache2 restart).

Bonne chance
0