【发布时间】:2010-10-27 03:02:17
【问题描述】:
我今天正在调试一个与混合mod_proxy 和mod_rewrite 相关的问题,我最终不得不在RewriteRule 中使用balancer://mycluster 以停止接收来自Apache 的404 错误。我有两个问题:
1) 有没有其他方法可以在不将balancer://mycluster 添加到RewriteRule 中的情况下让重写的URL 通过平衡器?
2) 有没有办法在<Proxy> 或RewriteRule 中定义我在ProxyPass (stickysession=JSESSIONID|jsessionid scolonpathdelim=On lbmethod=bytraffic nofailover=Off) 中定义的所有参数?我担心与新的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]
【问题讨论】:
标签: apache mod-rewrite apache2 load-balancing mod-proxy