Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
linux:halb [2011/10/31 15:57] linko22@gmail.com |
linux:halb [2011/11/01 09:45] (текущий) linko22@gmail.com [HAProxy] |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== High Availability and Load-Balancing ====== | ====== High Availability and Load-Balancing ====== | ||
| + | |||
| ===== Подготовка ===== | ===== Подготовка ===== | ||
| **/ | **/ | ||
| + | ===== HAProxy ===== | ||
| + | |||
| + | На обоих серверах делаем: | ||
| + | |||
| + | <code cli> | ||
| + | cp / | ||
| + | cat /dev/null > / | ||
| + | vi / | ||
| + | </ | ||
| + | |||
| + | <file bash haproxy.cfg> | ||
| + | global | ||
| + | log 127.0.0.1 | ||
| + | log 127.0.0.1 | ||
| + | #log loghost | ||
| + | maxconn 4096 | ||
| + | #debug | ||
| + | #quiet | ||
| + | user haproxy | ||
| + | group haproxy | ||
| + | |||
| + | defaults | ||
| + | log | ||
| + | mode http | ||
| + | option | ||
| + | option | ||
| + | retries 3 | ||
| + | redispatch | ||
| + | maxconn 2000 | ||
| + | contimeout | ||
| + | clitimeout | ||
| + | srvtimeout | ||
| + | |||
| + | listen webfarm 192.168.0.99: | ||
| + | mode http | ||
| + | stats enable | ||
| + | stats auth someuser: | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| ===== keepalived ===== | ===== keepalived ===== | ||
| Строка 20: | Строка 66: | ||
| sysctl -p | sysctl -p | ||
| + | А там же нам надо в **/ | ||
| + | |||
| + | <code bash> | ||
| + | -A INPUT -s 192.168.0.0/ | ||
| + | </ | ||
| + | |||
| + | Теперь настраиваем на keepalived на нодах. | ||
| + | |||
| + | ==== На первой: | ||
| + | |||
| + | Файл: / | ||
| + | |||
| + | <file bash keepalived.conf> | ||
| + | vrrp_script chk_haproxy { # Requires keepalived-1.1.13 | ||
| + | script " | ||
| + | interval 2 # check every 2 seconds | ||
| + | weight 2 # add 2 points of prio if OK | ||
| + | } | ||
| + | |||
| + | vrrp_instance VI_1 { | ||
| + | interface eth0 | ||
| + | state MASTER | ||
| + | virtual_router_id 51 | ||
| + | priority 101 # 101 on master, 100 on backup | ||
| + | virtual_ipaddress { | ||
| + | 192.168.0.99 | ||
| + | } | ||
| + | track_script { | ||
| + | chk_haproxy | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | И запускаем keepalived | ||
| + | |||
| + | service keepalived start | ||
| + | |||
| + | Проверям конфигурацию. Должно получиться что то подобное: | ||
| + | |||
| + | <code cli> | ||
| + | # ip addr sh eth0 | ||
| + | 2: eth0: < | ||
| + | link/ether 00: | ||
| + | inet 192.168.0.100/ | ||
| + | inet 192.168.0.99/ | ||
| + | inet6 fe80:: | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Добавляем в автозагрузку | ||
| + | |||
| + | chkconfig keepalived on | ||
| + | |||
| + | ==== На второй ==== | ||
| + | |||
| + | Файл: / | ||
| + | |||
| + | Небольшое, | ||
| + | <file bash keepalived.conf> | ||
| + | vrrp_script chk_haproxy { # Requires keepalived-1.1.13 | ||
| + | script " | ||
| + | interval 2 # check every 2 seconds | ||
| + | weight 2 # add 2 points of prio if OK | ||
| + | } | ||
| + | |||
| + | vrrp_instance VI_1 { | ||
| + | interface eth0 | ||
| + | state MASTER | ||
| + | virtual_router_id 51 | ||
| + | priority 100 # 101 on master, 100 on backup | ||
| + | virtual_ipaddress { | ||
| + | 192.168.0.99 | ||
| + | } | ||
| + | track_script { | ||
| + | chk_haproxy | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Запускаем: | ||
| + | |||
| + | / | ||
| + | |||
| + | И смотрим, | ||
| + | |||
| + | <code cli> | ||
| + | # ip addr sh eth0 | ||
| + | 2: eth0: < | ||
| + | link/ether 00: | ||
| + | inet 192.168.0.101/ | ||
| + | inet6 fe80:: | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Добавляем в автозагрузку | ||
| + | |||
| + | chkconfig keepalived on | ||
| + | ===== Запуск ===== | ||
| + | |||
| + | Запускаем HAProxy и добавляем его в автозагрузку. | ||
| + | |||
| + | service haproxy start | ||
| + | |||
| + | ===== Статьи ===== | ||
| + | Оригинал [[http:// | ||
| + | |||
| + | [[http:// | ||