Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Venez tester la Fedora 33 Beta

#1 12/12/2013 16:38:25

elbelo69
Membre
Lieu : Lyon
Inscription : 03/09/2007
Messages : 358

Apache Reverse proxy AJP

Bonjour,

J'ai un reverse proxy Apache qui utilise de workers AJP (ferme de serveur JBoss 7 en backend).
J'étudie la possibilité de diriger les requêtes sur tels ou tels serveur JBoss en fonction de la provenance de la requêtes (3 sous réseau différents).

Est ce que quelqu'un a déjà fait se genre de configuration et comment doit on s'y prendre ? (module a utilisé pour différencier les sous réseaux, les pièges a éviter, etc )
Je ne vois pas comment dans une location un un proxuPass je peux connaitre la provenance de la requête ?

D'avance merci pour votre aide

Hors ligne

#2 17/12/2013 00:31:12

elbelo69
Membre
Lieu : Lyon
Inscription : 03/09/2007
Messages : 358

Re : Apache Reverse proxy AJP

up

Hors ligne

#3 17/12/2013 01:46:54

Refuznik
Membre
Inscription : 31/01/2007
Messages : 7 734

Re : Apache Reverse proxy AJP

elbelo69 a écrit :

Bonjour,

J'ai un reverse proxy Apache qui utilise de workers AJP (ferme de serveur JBoss 7 en backend).
J'étudie la possibilité de diriger les requêtes sur tels ou tels serveur JBoss en fonction de la provenance de la requêtes (3 sous réseau différents).

Pas de besoin de up.
Je ne comprends pas l'utilité de ton reverse proxy si justement un simple routage sur chaque réseaux pourrait faire ton affaire.
Sinon je peux te renvoyer à la doc :
mod_authz_host ==> http://httpd.apache.org/docs/current/mo … _host.html, puis regarder comment contrôler l'accès à votre mandataire ==> http://httpd.apache.org/docs/current/mo … tml#access

Dernière modification par Refuznik (17/12/2013 01:53:01)

Hors ligne

#4 17/12/2013 10:12:33

elbelo69
Membre
Lieu : Lyon
Inscription : 03/09/2007
Messages : 358

Re : Apache Reverse proxy AJP

Merci pour la réponse. A priori quand même besoin d'un up ! big_smile

J'ai des utilisateurs qui arrivent de différents canaux (LAN/WAN/VPN).
L'application clientes demande des paramétrages différents en fonction de l'endroit d'ou ils arrivent. Nous avons donc une ferme avec n instance pour client VPN, n instance pour client LAN et n instance pour les clients WAN. Je peux, distingué la provenance de l'utilisateur a partir de : l'adresse IP ou l’entête HTTP qui est "tagé " par le routeur.
Je cherche a configurer des balancer sur mes différentes instances en fonction de la provenance.

Pour le moment j'ai fait un truc (qui marche) compliqué avec de vhost pour chaque cluster (LAN/WAN/VPN) et en fonction de la provenance de l'utilisateur (avec mod_authz_host) je forward la requête vers le vhost correspondant au client.
Mais c'est compliqué et je pense qu'il y a plus "élégant" comme solution mais ... je ne sais pas laquelle !

Donc non ce n'est pas qu'un simple problème de routage. J'ai besoin de balancer les utilisateurs en fonction des charges serveur (ce que AJP fait plutôt bien)  et surtout d'avoir du failover, et sans reverse proxy, pas de failover et pas de balancing.

Hors ligne

#5 17/12/2013 15:26:22

Refuznik
Membre
Inscription : 31/01/2007
Messages : 7 734

Re : Apache Reverse proxy AJP

elbelo69 a écrit :

...
Pour le moment j'ai fait un truc (qui marche) compliqué avec de vhost pour chaque cluster (LAN/WAN/VPN) et en fonction de la provenance de l'utilisateur (avec mod_authz_host) je forward la requête vers le vhost correspondant au client.

Malheureusement c'était la solution que je proposais.

elbelo69 a écrit :

...
Donc non ce n'est pas qu'un simple problème de routage. J'ai besoin de balancer les utilisateurs en fonction des charges serveur (ce que AJP fait plutôt bien)  et surtout d'avoir du failover, et sans reverse proxy, pas de failover et pas de balancing.

Yep, mais tu as aussi des solutions qui le font en hardware.

elbelo69 a écrit :

...
Mais c'est compliqué et je pense qu'il y a plus "élégant" comme solution mais ... je ne sais pas laquelle !

C'est toujours le problème entre solution soft et hard mais aussi parce que tu cherches à passer par le reverse proxy.
Jette un oeil quant même sur ce que ton/tes routeurs sont capables de gérer.

Bon après ce ne sont que quelques idées, perso. je n'ai jamais mis en place ce type d'archi.

Dernière modification par Refuznik (17/12/2013 15:27:22)

Hors ligne

#6 17/12/2013 22:35:31

proxy
Membre
Lieu : Localhost
Inscription : 15/08/2007
Messages : 8 805
Site Web

Re : Apache Reverse proxy AJP

Utilise mod_rewrite avec des conditions sur %{REMOTE_ADDR}
du genre :

RewriteCond %{REMOTE_ADDR} 1.2.3.4
RewriteRule (.*) /cas1/$1 [P]
ProxyPass /cas1 ajp://jboss1:8009/
ProxyPassReverse /cas1 ajp:/jboss1:8009/


F23 / KDE 5
Il date de quand votre dernier backup ?

Hors ligne

#7 18/12/2013 01:07:48

elbelo69
Membre
Lieu : Lyon
Inscription : 03/09/2007
Messages : 358

Re : Apache Reverse proxy AJP

Merci, ça me plait bien ça .....

Si je comprends bien, je declare mes balancer

<Proxy balancer://cluster1>
BalancerMember ajp://jboss:8009 route=1 loadfactor=1 ping=10 ttl=600
BalancerMember ajp://jboss2:8009 route=2 loadfactor=1 ping=10 ttl=600
ProxySet stickysession=ROUTEIDC1
</proxy>

<Proxy balancer://cluster2>
BalancerMember ajp://jboss3:8009 route=1 loadfactor=1 ping=10 ttl=600
BalancerMember ajp://jboss4:8009 route=2 loadfactor=1 ping=10 ttl=600
ProxySet stickysession=ROUTEIDC2
</proxy>

Ensuite

RewriteCond %{REMOTE_ADDR} 1.2.3.4
RewriteRule (^/MonApplication(.*)) /cas1/$1 [P] 
ProxyPass /cas1 balancer://cluster1/MonApplication timeout=10

RewriteCond %{REMOTE_ADDR} 10.20.30.40
RewriteRule (^/MonApplication(.*)) /cas2/$1 [P] 
ProxyPass /cas2 balancer://cluster2/MonApplication timeout=10

C'est bien ça l'idée ? Je ne maitrise pas mod_rewrite et la doc, bien que fourni, ne m'éclaire pas ....
Mais je fais quoi de $1 [P]  ?



Merci pour ton aide, avec un pseudo comme ça tu ne pouvais que m'aider ! big_smile

Hors ligne

#8 18/12/2013 15:28:34

proxy
Membre
Lieu : Localhost
Inscription : 15/08/2007
Messages : 8 805
Site Web

Re : Apache Reverse proxy AJP

Voici une conf simple :

   RewriteEngine On
   SSLProxyEngine on

   RewriteCond %{REMOTE_ADDR} IPCLIENT1
   RewriteRule ^/(.*) ajp://jboss1:8009/$1 [P]
   ProxyPassReverse / ajp://jboss1:8009/

   RewriteCond %{REMOTE_ADDR} IPCLIENT2
   RewriteRule ^/(.*) ajp://jboss2:8009/$1 [P]
   ProxyPassReverse / ajp://jboss2:8009/

Le $1 permet de récupérer ce qui correspond à (.*), cad tout ce qui suit le / de l'URL.
[P] : http://httpd.apache.org/docs/2.2/rewrit … tml#flag_p


F23 / KDE 5
Il date de quand votre dernier backup ?

Hors ligne

Pied de page des forums