2009-06-03 80 views
1

我將mod-proxy和mod-proxy-balancer設置爲負載均衡反向代理。事情是這樣的:Apache mod-proxy負載均衡器維護

<Proxy balancer://example> 
    BalancerMember http://hostname:8000 keepalive=on 
    BalancerMember http://hostname:8001 keepalive=on 
</Proxy> 

ProxyPass/balancer://example/ 
ProxyPassReverse/balancer://example/ 
ProxyPreserveHost on 
ProxyRequests Off 

有一個簡單的方法來設置此顯示靜態維護頁面當平衡器組的所有成員都下來了嗎?我之前用硬件負載均衡器完成了這個工作,這非常有用。

回答

4

也許你可以使用熱備份。下面的例子是從ProxyPass Directive部分,在那裏它說:「建立一個熱備份,如果沒有其他成員可用,將只能用」

ProxyPass/balancer://hotcluster/ 
<Proxy balancer://hotcluster> 
BalancerMember http://1.2.3.4:8009 loadfactor=1 
BalancerMember http://1.2.3.5:8009 loadfactor=2 
# The below is the hot standby 
BalancerMember http://1.2.3.6:8009 status=+H 
ProxySet lbmethod=bytraffic </Proxy> 
+0

這是一個好主意,但要充分發揮作用,它必須與「備用」成員忽略URL路徑的重寫規則相結合。 – schickb 2009-06-03 06:16:06

1

作爲一種替代重寫規則,你可以做同樣的事情適當的ErrorDocument指令。我們這樣做,其中代理服務器本身託管靜態錯誤頁面,「熱備份」主機爲http://localhost/some-app/

0

由於您的代理似乎是唯一的頁面(可能在VirtualHost中),您可以簡單地覆蓋錯誤頁面。阿帕奇產生一個503錯誤,所以這將是這樣的:

# Document root is required because error documents use relative paths 
DocumentRoot /var/www/html/ 
# Allow access to document root directory 
<Directory /var/www/html/> 
    Order allow,deny 
    allow from all 
</Directory> 
# Actual change: If service is unavailable (no member available), show this page 
ErrorDocument 503 /maintenance.html 

如果你想使用維護HTML內的圖像,請不,你必須使用絕對路徑(如/image.jpg)會加載/ VAR /www/html/image.jpg。