mod_proxy_balancer z obsługą php sticky sessions

Na prośbę pewnego Damiana opisuję sposób instalacji LoadBalancera mod_proxy z obsługą php sticky sessions.

Jeśli mamy już zainstalowanego Apache’a, to musimy załadować moduł mod_proxy_balancer. Najpierw sprawdźmy, czy takowy moduł nie jest już uruchomiony:

# apache2ctl -M | grep balancer

Jeżeli żaden wynik nie zostanie zwrócony, to musimy załadować ten moduł ręcznie (do autostartu):

# a2enmod proxy_balancer
/etc/init.d/apache2 restart

Konfigurujemy naszego load balancera:

/etc/apache2/sites-enabled/default:


RewriteEngine On
RewriteCond %{HTTPS} !=on

ProxyRequests off
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/ stickysession=BALANCEID nofailover=Off


BalancerMember http://lb-member01:80 route=http1 connectiontimeout=300 timeout=300
BalancerMember http://lb-member02:80 route=http2 connectiontimeout=300 timeout=300

Order Deny,Allow
Deny from none
Allow from all

ProxySet lbmethod=byrequests


Jak możemy zauważyć na powyższym przykładzie mamy dwa hosty w loadbalancerze lb-member1 i lb-member2 z metodą loadbalancingu byrequests (request do loadbalancera utrzymywany na danym serwerze per stickysession).

Pozostaję nam konfiguracja hostów pod loadbalancerem aby nasze stickysessions działało poprawnie.

Konfigurujemy apache2 VirtualHost dla danej domeny i dla uproszczenia sprawy skorzystamy z pliku .htaccess dla konfiguracji stickysessions:

BALANCEID to w naszym wypadku zmienna która przyjmuję wartość podaną przez route w konfiguracji BalancerMember, tak więc do pliku .htaccess na serwerze lb-member01 dodajemy:

RewriteRule .* – [CO=BALANCEID:balancer.http1:.$_DOMENA_$]

Na serwerze lb-member02:

RewriteEngine On
RewriteBase /
RewriteRule .* – [CO=BALANCEID:balancer.http2:.$_DOMENA_$]

To powinno wystarczyć do konfiugracji prostego loadbalancera z dwoma hostami pod nim korzystającego ze stickysessions.

Enjoy!

Ten wpis został opublikowany w kategorii Bez kategorii. Dodaj zakładkę do bezpośredniego odnośnika.

Jedna odpowiedź na „mod_proxy_balancer z obsługą php sticky sessions

  1. JarRoD pisze:

    Dzięki Damian ; ].

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>