2016-02-23 64 views
0

我已經安裝了apache httpd服務並嘗試設置負載均衡。 我想重寫特定條件下的請求 - 當主機頭是「images.server.com」時,我想重寫請求,向URI添加「/ images /」,然後將其代理到我的上游服務器。 的mod_proxy的模塊有完美的任務:https://httpd.apache.org/docs/current/rewrite/proxy.html 好了,沒有那麼大的 - 我的設置如下:使用RewriteCond的Apache負載平衡不起作用?

<Proxy balancer://mycluster> 
     BalancerMember http://xxx.xx.xx.xx:8080 
    </Proxy> 
    ProxyPreserveHost On 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ="images.server.com" 
    RewriteRule "/(.*)" "/images/%1" [P] 
    ProxyPass /images balancer://mycluster/images 

,它不工作:( 請幫我找出其中的破綻在此。配置

PS我已經加載的模塊:

LoadModule rewrite_module modules/mod_rewrite.so 
    LoadModule proxy_module modules/mod_proxy.so 
+0

你觀察到了什麼?爲什麼不使用虛擬主機並完全忽略重寫? – covener

回答

0

不要同時使用「P」標誌和的ProxyPass如果你打算使用「P」標誌,使用平衡器:// ...代替並完全刪除ProxyPass。

+0

我刪除了ProxyPass ...相同的結果 – user1990198

+0

您是否更改了替代int他rewriterule?什麼?你觀察到了什麼? – covener

+0

是的。 RewriteRule /(.*)balancer:// mycluster/images /%1 [P]行爲是一樣的:404,好像它搜索沒有/ images/part的位置 – user1990198