Назад | Перейти на главную страницу

Настройка диспетчера балансировщика с помощью mod_status на машине Apache с балансировкой нагрузки

Я настраиваю машину Centos с запущенным на ней Apache для балансировки нагрузки между двумя веб-серверами приложений. Обычно я делал бы все это с помощью F5 (или другого аппаратного LB), но клиент не хочет больше тратить деньги, поэтому я собираю это вместе с виртуальной машиной. Я заставил его работать, чтобы выполнять регулярный циклический перебор между двумя машинами, но мне нужен только второй сервер для аварийного переключения. Смотрите мой виртуальный хост ниже:

<VirtualHost *:80>
  Options +FollowSymLinks
  Include conf/virtualhosts.conf

  RewriteEngine on
  RewriteLogLevel 9
  RewriteLog /var/log/httpd/rewrite_log

  RewriteRule ^/?h/(\.[0-9]+)/(string/.*)$ balancer://mycluster/$2?h=$1 [P,QSA]

  Header add Set-Cookie "h=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_WORKER_ROUTE

  <Proxy balancer://mycluster/>
    Order deny,allow
    Allow from all
    BalancerMember http://server1:8080 route=0
    BalancerMember http://server2:8080 route=1 status=+H
  </Proxy>


  ProxyPreserveHost on

  ProxyPass / balancer://mycluster/ stickysession=h nofailover=On
  ProxyPassReverse / balancer://mycluster/
  ProxyPass /balancer-manager !
  <Location /balancer-manager>
    SetHandler balancer-manager

    Order Deny,Allow
    Allow from all
  </Location>
</VirtualHost>

Два вопроса, с которыми у меня возникли проблемы:

  1. Я установил параметр status = + H, но когда я выключаю веб-сервис на server1, он просто продолжает пытаться отправить меня на этот. Это из-за файла cookie на моей машине, который все еще хочет, чтобы я туда перешел? Нужно ли мне настраивать проверку работоспособности для возвращаемого значения http? Я немного заблудился. Если я отключу весь сервер, он должен работать, но тогда мне придется спуститься в серверную, чтобы перезагрузить его :).

  2. Я не могу заставить работать balancer_manager. Когда я иду в http://virtualip/balancer-manager он отправляет меня на один из веб-серверов, а затем веб-сервер на server1 сообщает мне, что эта ссылка не существует.

Любая помощь по любому вопросу была бы замечательной!