2009-05-18 3 views
4

Я работал на отладку сегодня вопрос, связанный со смешиванием mod_proxy и mod_rewrite вместе, и я закончил тем, что использовать balancer://mycluster в RewriteRule для того, чтобы не получать ошибку 404 от Apache. У меня есть два вопроса:Смешивание RewriteRule и ProxyPass в Apache

1) Есть ли другой способ, чтобы переписанный URL-адрес прошел через балансир без добавления balancer://mycluster в RewriteRule?

2) Есть ли способ, чтобы определить все параметры, определенные в I ProxyPass (stickysession = JSESSIONID | JSessionID scolonpathdelim = On lbmethod = bytraffic nofailover = Off) либо в <Proxy> или RewriteRule? Меня интересуют запросы, которые соответствуют новым RewriteRule, не будут загружать баланс таким же образом, как и те, которые проходят через ProxyPass (например, /app1/something.do)?

Ниже приведены соответствующие разделы httpd.conf. Я использую 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] 

ответ

4

Похоже, что я могу использовать ProxySet директиву поэтому URL, которые соответствуют баланс RewriteRule нагрузки в той же манере.

<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> 
Смежные вопросы