Ho cercato negli ultimi due giorni di far funzionare questo piccolo scenario.
Piccolo disegno della mia architettura.
request
|
ApacheLB
|
|---------|
Apache1 Apache2
Tomcat1 Tomcat2
Finora posso far funzionare quanto segue, servendo il mio cluster di server Apache o servendo il mio cluster di server Tomcat.
Il cluster Apache gestisce i siti PHP e utilizza sessioni permanenti (funziona come un incantesimo) e il cluster Tomcat gestisce i siti JPS e anche questo funziona.
Ciò di cui ho bisogno è quando una richiesta raggiunge il mio bilanciamento del carico (ApacheLB) e l'host richiesto inizia con dire "admin", quindi il cluster Tomcat prende in carico altri handle di richiesta dal cluster Apache.
Entrambi i cluster utilizzano gestisce più siti. Qualche esempio.
http://www.company1.com
http://admin.company1.com
http://www.company2.com
http://admin.company2.com
Sto usando Apache 2.4, Tomcat 7, mod_proxy_balancer, tutto sotto Windows.
La mia configurazione.
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>
Ospite
<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>
Qualsiasi aiuto sarebbe grande! Grazie!
Cordiali saluti Robert