Как настроить балансировщик нагрузки высокой доступности с помощью HAProxy для управления трафиком веб-сервера
HAProxy означает прокси-сервер высокой доступности. Это бесплатное приложение с открытым исходным кодом, написанное на языке программирования C. Приложение HAProxy используется в качестве балансировщика нагрузки TCP/HTTP и для прокси-решений. Чаще всего приложение HAProxy используется для распределения рабочей нагрузки между несколькими серверами, например, веб-сервером, сервером базы данных и т. д., тем самым улучшая общую производительность и надежность серверной среды.
Высокоэффективное и быстрое приложение используется многими известными в мире организациями, включая, помимо прочего, Twitter, Reddit, GitHub и Amazon. Он доступен для платформ Linux, BSD, Solaris и AIX.
В этом руководстве мы обсудим процесс настройки балансировщика нагрузки высокой доступности с использованием HAProxy для управления трафиком HTTP-приложений (веб-серверов) путем разделения запросов между несколькими серверами.
В этой статье мы используем самую последнюю стабильную версию HAProxy, то есть 1.5.10, выпущенную 31 декабря 2014 года. А также мы используем для этого CentOS 6.5. setup, но приведенные ниже инструкции также работают в дистрибутивах CentOS/RHEL/Fedora и Ubuntu/Debian.
Моя настройка среды
Здесь наш сервер HAProxy балансировщика нагрузки имеет имя хоста websrv.tecmintlocal.com и IP-адрес 192.168.0.125.
Настройка HAProxy-сервера
Operating System : CentOS 6.5
IP Address : 192.168.0.125
Hostname : websrv.tecmintlocal.com
Настройка клиентских веб-серверов
Остальные четыре машины работают с веб-серверами, такими как Apache.
Web Server #1 : CentOS 6.5 [IP: 192.168.0.121] - [hostname: web1srv.tecmintlocal.com]
Web Server #2 : CentOS 6.5 [IP: 192.168.0.122] - [hostname: web2srv.tecmintlocal.com]
Web Server #3 : CentOS 6.5 [IP: 192.168.0.123] - [hostname: web3srv.tecmintlocal.com]
Web Server #4 : CentOS 6.5 [IP: 192.168.0.124] - [hostname: web4srv.tecmintlocal.com]
Шаг 1. Установка Apache на клиентских машинах
1. Сначала нам нужно установить Apache на всех четырех серверах и открыть общий доступ к любому из сайтов. Для установки Apache на всех четырех серверах мы собираемся использовать следующую команду.
yum install httpd [On RedHat based Systems]
apt-get install apache2 [On Debian based Systems]
2. После установки веб-сервера Apache на всех четырех клиентских компьютерах вы можете проверить на любом сервере, работает ли Apache, обратившись к нему через IP-адрес в браузере.
http://192.168.0.121
Шаг 2. Установка HAProxy-сервера
3. В большинстве современных дистрибутивов Linux HAPRoxy можно легко установить из базового репозитория по умолчанию с помощью менеджера пакетов по умолчанию yum или apt-get. >.
Например, чтобы установить HAProxy в версиях RHEL/CentOS/Fedora и Debian/Ubuntu, выполните следующую команду. Здесь я также включил пакет openssl, потому что мы собираемся настроить HAProxy с поддержкой SSL и NON-SSL.
yum install haproxy openssl-devel [On RedHat based Systems]
apt-get install haproxy [On Debian based Systems]
Примечание. В Debian Whezzy 7.0 нам необходимо включить репозиторий бэкпортов, добавив новый файл backports.list . >в каталоге «/etc/apt/sources.list.d/» со следующим содержимым.
echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list
Затем обновите базу данных репозитория и установите HAProxy.
apt-get update
apt-get install haproxy -t wheezy-backports
Шаг 3. Настройте журналы HAProxy
4. Далее нам нужно включить функцию ведения журнала в HAProxy для будущей отладки. Откройте основной файл конфигурации HAProxy «/etc/haproxy/haproxy.cfg» в выбранном вами редакторе.
vim /etc/haproxy/haproxy.cfg
Затем следуйте инструкциям для конкретного дистрибутива, чтобы настроить функцию ведения журнала в HAProxy.
На RHEL/CentOS/Fedora
В разделе #Глобальные настройки включите следующую строку.
log 127.0.0.1 local2
В Ubuntu/Debian
В разделе #Глобальные настройки замените следующие строки:
log /dev/log local0
log /dev/log local1 notice
С,
log 127.0.0.1 local2
5. Далее нам нужно включить прием системного журнала UDP в файле конфигурации «/etc/rsyslog.conf», чтобы разделить файлы журналов для HAProxy в /var/log. каталог. Откройте файл «rsyslog.conf» в выбранном вами редакторе.
vim /etc/rsyslog.conf
Uncommnet ModLoad и UDPServerRun. Здесь наш сервер будет прослушивать порт 514 для сбора журналов в системный журнал.
Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
6. Далее нам нужно создать отдельный файл «haproxy.conf» в каталоге «/etc/rsyslog.d/» для настройки отдельные файлы журналов.
vim /etc/rsyslog.d/haproxy.conf
Добавьте следующую строку во вновь созданный файл.
local2.* /var/log/haproxy.log
Наконец, перезапустите службу rsyslog, чтобы обновить новые изменения.
service rsyslog restart