Обслуживание балансировщика нагрузки мод-прокси Apache

У меня есть настройки 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

Есть ли простой способ настроить отображение статической страницы обслуживания, когда все члены группы балансировщика не работают? Раньше я делал это с помощью аппаратного балансировщика нагрузки, и это было очень полезно.


person schickb    schedule 03.06.2009    source источник


Ответы (3)


Может быть, можно использовать горячий резерв. Пример ниже взят из раздела 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>
person Kevin Hakanson    schedule 03.06.2009
comment
Это хорошая идея, но для полноценной работы ее необходимо объединить с правилом перезаписи, чтобы резервный член игнорировал путь URL. - person schickb; 03.06.2009

В качестве альтернативы RewriteRule вы можете сделать то же самое с соответствующими директивами ErrorDocument. Мы делаем что-то вроде этого, когда на самом прокси-сервере размещаются статические страницы ошибок, а хостом «горячего резервирования» является http://localhost/some-app/.

person larsks    schedule 12.11.2009

Поскольку ваш прокси-сервер кажется единственной страницей (возможно, в 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.

person Tarnschaf    schedule 29.08.2013