Есть 2 сервера приложений(app01 и app02), на которых установлен Redis и Sentinel для мониторинга активного мастера и перевода одного из существующих слейв серверов в режим мастера в случае выхода со строя текущего мастера, а также перевода старого мастера в режим slave к вновь избранному мастеру. Также есть третий сервер(advisor), на котором запущен только Sentinel. Этот […]
Записи с меткой ‘haproxy’
Настройка High Availabilty RabbitMQ-кластера
RabbitMQ может быть настроен для много-нодового кластера (с репликацией очередей с мастера на slave-ноды). Отказоустойчивость может быть обеспечена добавлением round-robin лоадбалансера(например, HAProxy) впереди RabbitMQ-кластера Для настройка High Availability необходимо настроить Cluster, а затем – репликацию/зеркалирование очередей сообщений т.к. при настройке кластера реплицируются на ноды кластера все необходимые для работы RabbitMQ данные, за исключением очередей сообщений. […]
Установка и настройка HAProxy на Debian/Ubuntu
Установка HAProxy Debian8
1 |
# echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list.d/backports.list |
1 |
# apt-get update |
1 |
# apt-get install haproxy -t jessie-backports |
Debian7
1 |
# echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list |
1 |
# apt-get update |
1 |
# apt-get install haproxy -t wheezy-backports |
Ubuntu14
1 |
# apt-get install haproxy |
Либо
1 |
echo "deb http://archive.ubuntu.com/ubuntu trusty-backports main universe" >> /etc/apt/sources.list.d/backports.list |
1 |
# apt-get update |
1 |
# apt-get install haproxy -t trusty-backports |
2.Настройка логирования HAProxy Настройка HAProxy
1 |
# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg~ |
1 |
# nano /etc/haproxy/haproxy.cfg |
1 2 |
global log 127.0.0.1 local2 notice |
Настройка Rsyslog
1 |
# nano /etc/rsyslog.conf |
1 2 3 4 5 6 |
# provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 $UDPServerAddress 127.0.0.1 #### RULES #### local2.* /var/log/haproxy.log |
1 |
# /etc/init.d/rsyslog restart |
1 |
[ ok ] Restarting rsyslog (via systemctl): rsyslog.service. |
3.Настройка HAProxy
1 |
# nano /etc/haproxy/haproxy.cfg |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
###### Описание секции global ####### global # системный лог сервера, в который нужно отправлять предупреждения и извещения log 127.0.0.1 local2 notice # Запуск HAProxy в chroot-окружении chroot /var/lib/haproxy # пользователь и группа, от которых работает процесс user haproxy group haproxy # Запуск HAProxy как сервиса daemon # количество одновременных подключений на внешнем интерфейсе(максимальное число одновременных подключений для каждого процесса) maxconn 10000 # nbproc «number» (nbproc 2) — задает количество проццессов. По умолчанию только один процесс будет создан # Default SSL material locations ca-base /etc/ssl/certs crt-base /etc/ssl/private # Default ciphers to use on SSL-enabled listening sockets. # For more information, see ciphers(1SSL). This list is from: # https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS ssl-default-bind-options no-sslv3 ####### Описание секции defaults ####### defaults # Включает в журналирование информацию о трафике log global # Режим работы HAProxy, в http режиме происходит анализ Layer 7 трафика mode http # Добавляет в лог HTTP запросы, состояние сеанса и таймеры option httplog # Отключает логирование пустых соединений option dontlognull # количество повторных попыток подключения к backend-серверу после сбоя подключения. retries 3 # перераспределение сессии в случае сбоев соединения c каким-либо backend-сервером option redispatch # количество одновременных подключений на внешнем интерфейсе(максимальное число одновременных подключений для каждого процесса) maxconn 10000 # автоматически закрывать соединения после завершения передачи данных option httpclose # Включение X-Forwarded-For для передачи IP-адреса клиента backend-серверу option forwardfor # максимальное время ожидания для успешного подключения к серверу timeout connect 5000 # когда клиент или сервер должны подтвердить приём данных или отправить данные в TCP-процессе. Рекомендуется установить для них одинаковое значение timeout client 50000 timeout server 50000 # Включение страницу статистики stats enable # URL, по которому доступна статистика Haproxy stats uri /haproxy # Заголовок странички статистики stats realm Haproxy\ Statistics # HTTP-базовая авторизация логин/пароль для просмотра статистики HAProxy stats auth admin:123456 # Автообновление статики каждые 30 секунд stats refresh 30s # Скрывать версию HAProxy в статистике # stats hide-version # Отображение в статистеке дополнительной информацию о параметрах # stats show-legends # stats show-node # Определение страниц ошибок errorfile 400 /etc/haproxy/errors/400.http errorfile 403 /etc/haproxy/errors/403.http errorfile 408 /etc/haproxy/errors/408.http errorfile 500 /etc/haproxy/errors/500.http errorfile 502 /etc/haproxy/errors/502.http errorfile 503 /etc/haproxy/errors/503.http errorfile 504 /etc/haproxy/errors/504.http ####### Описание секции frontend ####### # Имя Frontend-сервера frontend WEBLoadBalancer-HTTP # Режим работы фронтенда mode http # IP-адрес и порт, на котором будет слушать запроcы HApoxy bind 10.10.1.43:80 # Имя Backend-сервера, на который необходимо направлять запросы default_backend webcluster ####### Описание секции backend ####### # Имя Backend-сервера backend webcluster # Режим работы backend-сервера mode http # Алгоритм балансировки запросов # roundrobin/leastconn/static-rr/uri/source/url_param balance roundrobin option httpclose option forwardfor # Проверка состояния/доступности backend-серверов option httpchk HEAD /test.php HTTP/1.0 # например,если нужно мониторить доступность виртуального хоста # option httpchk HEAD / HTTP/1.0\r\nHost:kamaok.org.us # сервера бэкенда # синтаксис server <name> <address>[:port] [param*] # name - будет появляться в логах и предупреждениях. # check - проверку состояния сервера через проверку,определенную параметром httpchk # cookie - вставка имени сервера(name) в занчение cookie server app01 192.168.10.54:80 check server app02 192.168.10.55:80 check server app03 192.168.10.56:80 check http-request add-header X-Forwarded-Proto https if { ssl_fc } |
Вся статистика по кластеру HAproxy становится доступна по адресу http://IP-haproxy-server/haproxy с логином и паролем,указанными в параметре stats auth Доступность […]
Установка и настройка отказоустойчивого балансировщика нагрузки на основе Haproxy+Keepalived (Горизонтальное масштабирование на уровне приложений модели OSI) на Centos
Структурная схема кластера На серверах lb01 и lb02 устанавливается Haproxy для балансировки нагрузки (распределения запросов клиентов на пару Web-серверов(серверов приложений app01 и app02)), а также для отказоустойчивости. При выходе со строя одного из lb-ов второй из них автоматически становится активным сервером(цепляет на себя VIP(Virtual IP) на который прописаны сайты в ДНС) Это достигается за счет […]