Apache Load Balancing

Apache для балансировки нагрузки на несколько back-end серверов

Создаем два модуля:

mod_proxy

mod_proxy_balancer

Пример конфигурации хоста:

<VirtualHost *:80>

ServerName mywebsite.com

ProxyRequests On

ProxyVia On

<Proxy balancer://mycluster>

BalancerMember http://192.168.X.X:80

BalancerMember http://192.168.X.X:80

BalancerMember http://192.168.X.X:80

</Proxy>

ProxyPass / balancer://mycluster

</VirtualHost>

Для того что бы включить Sticky session или source балансировку, нужно привести конфиг к следующему виду:

<VirtualHost *:80>

ServerName mywebsite.com

ProxyRequests On

ProxyVia On

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

<Proxy balancer://mycluster>

BalancerMember http://192.168.X.X:80 route=1

BalancerMember http://192.168.X.X:80 route=2

BalancerMember http://192.168.X.X:80 route=3

ProxySet stickysession=ROUTEID

</Proxy>

ProxyPass / balancer://mycluster

</VirtualHost>