На днях было получено задание соорудить проксик, который бы разбрасывал соединения таким образом:

всё на основной сервер, на его 1-й ip адрес, если он навернётся, то на его второй ip, и проверять доступность первого раз в полчаса, если второй ip первого сервера рухнул, считаем что сервак рухнул, переходим на первый ip запасного сервера, и проверяем первый сервер раз в 6 часов, если первый ip запасного сервера рухнул, то переходим на второй ip запасного сервера...

был предложен некоторый конфиг для haproxy.

global
log 127.0.0.1 local0
log 127.0.0.1 local1 info
maxconn 10000
user haproxy
group haproxy
daemon
quiet
# по количеству ядер
nbproc 4

stats socket /var/run/haproxy.sock mode 600

defaults
log global
mode http
balance roundrobin
retries 3
option tcpka
option redispatch
contimeout 5000
clitimeout 50000
srvtimeout 50000
option nolinger
no option abortonclose
no option forceclose
option http-pretend-keepalive
option httpchk GET /
# статистика
listen admin_stats *:8000
mode http
stats uri /stats
stats realm Global\ statistics
stats auth admin:password

раскидывает запросы по первому серверу, проверки здоровья осуществляются каждые полчаса (30 сек)

listen internal-1 127.0.0.1:8888
server srv-1 127.0.0.1:80 weight 250 check inter 1000 downinter 30000
server srv-1 10.137.85.103:80 weight 1 backup check inter 1000 downinter 30000

раскидывает запросы по второму серверу, проверки здоровья осуществляются каждые полчаса

listen internal-2 127.0.0.1:8889
server srv-2 127.0.0.1:8080 weight 250 check inter 1000 downinter 30000
server srv-2 10.137.85.103:8080 weight 1 backup check inter 1000

вешаем нашу прослойку на 80-порты всех ip адресов , проверки здоровья осуществляются каждые 6 часов

раскидываем запросы по двум внутренним проксям

listen external *:800
server internal-1 127.0.0.1:8888 weight 255 check inter 1000 downinter 60000
server internal-2 127.0.0.1:8889 weight 1 backup check inter 1000

чем больше weight, тем больше соединений с сервером и больше нагрузка на него

inter в миллисекундах

пока ушло в тестирование...

(это мой пост http://eleksir8.blogspot.ru/2011/06/haproxy.html)

Next Post