Поиск по сайту:

Как настроить балансировщик нагрузки высокой доступности с помощью 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