我将mod-proxy和mod-proxy-balancer设置为负载平衡反向代理。像这样:
<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
当平衡器组的所有成员都关闭时,是否有一种简单的方法可以将其设置为显示静态维护页面?我以前用硬件负载均衡器完成了它,它非常有用。
答案 0 :(得分: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>
答案 1 :(得分:1)
作为RewriteRule的替代方法,您可以使用适当的ErrorDocument指令执行相同的操作。我们做这样的事情,代理服务器本身托管静态错误页面,“热备用”主机是http://localhost/some-app/。
答案 2 :(得分:0)
由于您的代理似乎是唯一的页面(可能在VirtualHost中),因此您可以简单地覆盖错误页面。 Apache产生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。