Config Apache 2 en multiple job handler
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
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:
- Config Apache 2 en multiple job handler
- Supercopier 2 - Télécharger - Gestion de fichiers
- Connaitre sa config pc - Guide
- Apache open office gratuit - Télécharger - Suite bureautique
- Ecran multiple pc - Guide
- Excel cellule choix multiple - Guide
3 réponses
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
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
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
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
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
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
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