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>