代码之家  ›  专栏  ›  技术社区  ›  Taylor Leese

在Apache中混合rewriterule和proxypass

  •  5
  • Taylor Leese  · 技术社区  · 15 年前

    我今天正在调试一个有关混合的问题 mod_proxy mod_rewrite 最后我不得不使用 balancer://mycluster RewriteRule 为了停止接收来自Apache的404错误。我有两个问题:

    1)是否有其他方法可以让重写的URL通过平衡器而不添加 Balancer://mycluster 进入 改写词 ?

    2)是否有方法定义我在中定义的所有参数? ProxyPass (stickysession=jsessionid_jsessionid scolonpathdelim=on lbmethod=bytraffic nofailover=off)在 <Proxy> 改写词 ?我关心的是与新的 改写词 负载平衡不会像那些经历过的那样 主动传球 (像 /app1/something.do )?

    下面是httpd.conf.i使用的Apache2.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 回复  |  直到 14 年前
        1
  •  4
  •   Taylor Leese    15 年前

    看起来我可以用 ProxySet 指令,以相同的方式匹配重写器负载平衡的URL。

    <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>