Я работал на отладку сегодня вопрос, связанный со смешиванием 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]