Смешивание RewriteRule и ProxyPass в Apache
Сегодня я работал над отладкой проблемы, связанной со смешиванием mod_proxy
и mod_rewrite
вместе, и мне пришлось использовать balancer://mycluster
в RewriteRule
, чтобы остановить получение ошибки 404 от Apache. У меня есть два вопроса:
balancer://mycluster
в RewriteRule
?
2) есть ли способ определить все параметры, которые я определил в ProxyPass
(stickysession=JSESSIONID|jsessionid scolonpathdelim=On lbmethod=bytraffic nofailover=выкл) в <Proxy>
и RewriteRule
? Я обеспокоен тем, что запросы, соответствующие новому RewriteRule
, не будут балансировать нагрузку таким же образом, как те, которые проходят через ProxyPass
(например, /app1/something.do
)?
Ниже приведены соответствующие разделы httpd.конф. Я использую 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]
1 ответ:
Похоже, я могу использовать директиву 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>