Обслуживание балансировщика нагрузки Apache mod-proxy - PullRequest
1 голос
/ 03 июня 2009

У меня есть mod-proxy и 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

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

Ответы [ 3 ]

4 голосов
/ 03 июня 2009

Может быть, вы можете использовать горячий резерв. Приведенный ниже пример взят из раздела 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 голос
/ 13 ноября 2009

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

0 голосов
/ 29 августа 2013

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

.
...