2009-05-18 11 views
4

je travaillais sur le débogage d'un problème aujourd'hui lié au mélange mod_proxy et mod_rewrite ensemble et je fini par avoir à utiliser balancer://mycluster dans le RewriteRule afin d'arrêter de recevoir une erreur 404 d'Apache. J'ai deux questions:mélange RewriteRule et ProxyPass dans Apache

1) Existe-t-il un autre moyen d'obtenir que l'URL réécrite passe par l'équilibreur sans ajouter balancer://mycluster dans le RewriteRule?

2) Est-il possible de définir tous les paramètres I définis dans ProxyPass (stickysession = JSESSIONID | jsessionid scolonpathdelim = Sur lbmethod = bytraffic NOFAILOVER = Off) soit dans le <Proxy> ou RewriteRule? Je suis préoccupé par les demandes qui correspondent à la nouvelle RewriteRule ne charge pas l'équilibre de la même manière que ceux qui passent par ProxyPass (comme /app1/something.do)?

Voici les sections pertinentes du fichier httpd.conf. J'utilise Apache 2.2.

<Proxy balancer://mycluster> 
    Order deny,allow 
    Allow from all 

    BalancerMember ajp://my.domain.com:8009 route=node1 
    BalancerMember ajp://my.domain.com:8009 route=node2 
</Proxy> 

ProxyPass /app1 balancer://mycluster/app1 stickysession=JSESSIONID|jsessionid scolonpathdelim=On lbmethod=bytraffic nofailover=Off 
ProxyPassReverse /app1 ajp://my.domain.com:8009/app1 

...

RewriteRule ^/static/cms/image/(.*)\.(.*) balancer://mycluster/app1/$1.$2 [P,L] 

Répondre

4

On dirait que je peux utiliser la directive ProxySet afin de l'URL qui correspondent à l'équilibre de la charge RewriteRule de la même façon.

<Proxy balancer://mycluster> 
    Order deny,allow 
    Allow from all 

    BalancerMember ajp://my.domain.com:8009 route=node1 
    BalancerMember ajp://my.domain.com:8009 route=node2 

    ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On lbmethod=bytraffic nofailover=Off 
</Proxy>