Балансировка нагрузки нескольких сайтов PHP и сайтов JSP с использованием Apache Server

Последние пару дней я пытался заставить этот маленький (хотя я) сценарий работать.

Небольшой рисунок моей архитектуры.

      request
         |
     ApacheLB
         |
    |---------|
 Apache1   Apache2
 Tomcat1   Tomcat2

Пока я могу заставить работать следующее: либо обслуживать мой кластер серверов Apache, либо обслуживать мой кластер серверов Tomcat.

Кластер Apache обрабатывает сайты PHP и использует липкие сессии (работает как шарм), а кластер Tomcat обрабатывает сайты JPS, и это тоже работает.

Что мне нужно, это когда запрос попадает на мой балансировщик нагрузки (ApacheLB), а запрашиваемый хост начинается с "admin", а затем кластер Tomcat перехватывает другие дескрипторы запросов кластером Apache.

Оба кластера используют дескрипторы нескольких сайтов. Некоторые примеры.

http://www.company1.com
http://admin.company1.com

http://www.company2.com
http://admin.company2.com

Я использую Apache 2.4, Tomcat 7, mod_proxy_balancer, все под Windows.

Мой конфиг.

Apache LB
<VirtualHost *:80>
Header add Set-Cookie "BALANCEID=lb.%{BALANCER_WORKER_ROUTE}e; path=/;" env=BALANCER_ROUTE_CHANGED

ProxyRequests Off
ProxyPreserveHost On

ProxyPass /balancer-manager !
ProxyPass / balancer://lb/ stickysession=BALANCEID nofailover=Off
ProxyPassReverse / http://windows-server1:8009/
ProxyPassReverse / http://windows-server2:8009/

<Proxy balancer://lb>
    BalancerMember http://windows-server1:8009/  route=node1 min=3 max=5
    BalancerMember http://windows-server2:8009/  route=node2
    ProxySet lbmethod=byrequests
</Proxy>

<Location /balancer-manager>
    SetHandler balancer-manager
    AuthType Basic
    AuthName "Balancer Manager"
    AuthUserFile "C:/etc/lb/conf/.htpasswd"
    Require valid-user
</Location>

хозяин
<VirtualHost *:8009>
DocumentRoot "c:/etc/www/test"
ServerName www.company1.com
ServerAlias company1.com

<Directory "c:/etc/www/www.company1.com">
    AllowOverride All
    Order Allow,Deny
    Allow from all
    Require all granted
</Directory>

Любая помощь будет отличной! Спасибо!

С наилучшими пожеланиями Роберт

1 ответ

Из комментариев

Решено это путем создания балансировщика нагрузки на разных портах, обрабатываемого DNS.

Другие вопросы по тегам