Балансировка нагрузки нескольких сайтов 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>
хозяин
<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>
VirtualHost>
Любая помощь будет отличной! Спасибо!
С наилучшими пожеланиями Роберт
1 ответ
Из комментариев
Решено это путем создания балансировщика нагрузки на разных портах, обрабатываемого DNS.