HAProxy (High Availability Proxy) — это бесплатное ПО для балансировки нагрузки и проксирования с открытым исходным кодом, предназначенное для упрощения и защиты современной архитектуры приложений. Оно позволяет веб-серверу распределять входящие запросы по нескольким конечным точкам. Это очень полезно, когда слишком много одновременных подключений нагружают один сервер. HAProxy очень популярный инструмент, благодаря своей эффективности, надежности, а также маленькой утилизации оперативной памяти и процессорного времени.
В этой статье, рассмотрим процесс установки HAProxy на Ubuntu 23.04
Что нужно.
- Сервер Ubuntu 23.04 для установки на него HAProxy
- Два сервера на Ubuntu 23.04 для Apache. (Backend)
- root права на всех серверах.
Настройка Apache в качестве backend.
Во-первых, вам нужно будет настроить два веб-сервера Apache в качестве backend части. Устанавливать Apache будем из стандартного репозитория. Для этого выполним, на обоих серверах apache, следующую команду:
//На первом сервере root@apache1:~# apt-get install apache2 -y //На втором сервере root@apache2:~# apt-get install apache2 -y
После установки, создадим образец главной страницы для apache:
//Для первого сервера root@apache1:~# echo "<H1>Это мой первый apache сервер</H1>" | tee /var/www/html/index.html //Для второго сервера root@apache2:~# echo "<H1>Это мой второй apache сервер</H1>" | tee /var/www/html/index.html
На этом с apache, пожалуй, пока хватит. Перейдем к установке HAProxy
Установка HAProxy
По умолчанию HAProxy включен в репозиторий Ubuntu 23.04. Установим его, выполнив следующую команду:
root@haproxy:~# apt-get install haproxy -y
После установки HAProxy запустим службу HAProxy и добавим ее в автозагрузку:
root@haproxy:~# systemctl start haproxy root@haproxy:~# systemctl enable haproxy Synchronizing state of haproxy.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable haproxy
С установкой закончили, приступим к конфигурации.
Конфигурирование HAProxy.
У нас HAProxy установлен и работает. Теперь необходимо отредактировать файл конфигурации /etc/haproxy/haproxy.cfg, используемый по умолчанию и определить внутренние серверы. Откроем этот файл в любом удобном текстовом редакторе. Обычно в нем уже есть два раздела global и defaults. Их трогать не будем, что какой параметр означает можете прочитать в документации. Добавим в него два других раздела для frontend и backend.
frontend apache_front # Порт на котором будет доступен frontend - 80 bind *:80 # Backend, используемый по умолчанию: apache default_backend apache_backend_servers # Отправка заголовка XFF option forwardfor # Определение backend backend apache_backend_servers # Использовать алгоритм балансировки roundrobin # Каждый сервер используется по очереди, в соответствии со своим весом balance roundrobin # Определение серверов для backend'а, необходимо указать имя хоста и ip наших двух apache server apache1 ip_apache1:80 check server apache2 ip_apache2:80 check
Сохраняем и закрываем наш конфиг. После этого перезапустим сервис HAProxy для применения настроек.
root@haproxy:~# systemctl restart haproxy
И проверим работоспособность, должен получится примерно вот такой вывод
root@haproxy:~# systemctl status haproxy ● haproxy.service - HAProxy Load Balancer Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; preset: enabled) Active: active (running) since Tue 2023-09-05 18:43:43 UTC; 16s ago Docs: man:haproxy(1) file:/usr/share/doc/haproxy/configuration.txt.gz Main PID: 2633 (haproxy) Tasks: 2 (limit: 1097) Memory: 39.4M CPU: 244ms CGroup: /system.slice/haproxy.service ├─2633 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock └─2635 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock
Проверим работу HAProxy.
На этом этапе HAProxy настроен и работает. Теперь пришло время проверить, работает ли HAProxy или нет.
Откройте веб-браузер и введите URL-адрес http://ip_вашего_haproxy. Вы увидите, что HAProxy отправляет запросы на внутренние серверы один за другим после каждого обновления.
Теперь обновим страницу, получим запрос к другому серверу
Заключение.
В этой статье рассмотрели, как установить и настроить сервер HAProxy для распределения нагрузки между двумя веб-серверами Apache в Ubuntu 23.04. Теперь можете внедрить HAProxy в своей производственной среде, чтобы повысить производительность и доступность вашего веб-сайта или приложения.
Was this helpful?
0 / 0