Как установить и настроить HAProxy на Rocky Linux 8
На этой странице
- Предпосылки
- Установите HAProxy
- Настройка HAProxy
- Настройка брандмауэра
- Настройка внутренних серверов
- Подтвердить HAProxy
- Заключение
Когда вы развертываете приложение в Интернете, доступность, масштабируемость и производительность приложения очень важны для лучшего взаимодействия с пользователем. Существует множество технологий, обеспечивающих избыточность, таких как балансировка нагрузки, кластеризация и прокси.
HAProxy — это бесплатный и надежный балансировщик нагрузки с открытым исходным кодом, разработанный для веб-сайтов с высоким трафиком. Он балансирует нагрузку входящего трафика, распределяя его между несколькими внутренними серверами.
В этой статье мы покажем вам, как установить HAProxy на Rocky Linux 8.
Для целей этого руководства мы будем использовать следующую настройку:
IP-адрес сервера
HAProxy 172.16.10.10
Серверная часть1 172.16.10.11
Backend2 172.16.10.12
Предпосылки
- Сервер под управлением RockyLinux 8.
- На сервере настроен пароль root.
Установить HAProxy
По умолчанию пакет HAProxy доступен в репозитории Rocky Linux 8 по умолчанию. Вы можете установить его с помощью следующей команды:
dnf install haproxy -y
После установки HAProxy запустите службу HAProxy и включите ее запуск при перезагрузке системы:
systemctl start haproxy
systemctl enable haproxy
Настроить HAProxy
Далее вам нужно будет отредактировать файл /etc/haproxy/haproxy.cfg и изменить два раздела frontend и backend. В разделе Frontend вам нужно будет определить IP-адрес HAProxy, его порт, URI статистики и имя бэкэнда. В разделе Backend вам нужно будет определить алгоритм балансировки нагрузки, имя внутреннего сервера, IP-адреса и порт.
nano /etc/haproxy/haproxy.cfg
Измените следующие разделы:
frontend http_balancer bind 172.16.10.10:80 option http-server-close option forwardfor stats uri /haproxy?stats default_backend Apache_webservers backend apache_webservers mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server apache1 172.16.10.11:80 check server apache2 172.16.10.12:80 check
Сохраните и закройте файл, когда вы закончите, вам нужно будет отредактировать файл /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Раскомментируйте следующие строки:
module(load="imudp") input(type="imudp" port="514")
Сохраните и закройте файл, затем создайте файл haproxy.conf для rsyslog с помощью следующей команды:
nano /etc/rsyslog.d/haproxy.conf
Добавьте следующие строки:
local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log
Затем запустите службу rsyslog и включите ее запуск при перезагрузке системы:
systemctl start rsyslog
systemctl enable rsyslog
Наконец, перезапустите службу HAProxy, чтобы применить изменения:
systemctl restart haproxy
Вы также можете проверить статус службы HAProxy с помощью следующей команды:
systemctl status haproxy
Вы должны увидеть следующий вывод:
? haproxy.service - HAProxy Load Balancer Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2021-08-03 03:10:37 EDT; 1min 16s ago Process: 44032 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 44036 (haproxy) Tasks: 2 (limit: 12524) Memory: 3.1M CGroup: /system.slice/haproxy.service ??44036 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid ??44111 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid Aug 03 03:10:36 RockyLinux8 systemd[1]: Starting HAProxy Load Balancer... Aug 03 03:10:37 RockyLinux8 systemd[1]: Started HAProxy Load Balancer.
Настроить брандмауэр
Далее вам нужно будет настроить firewalld на всех серверах и разрешить порт 80 через брандмауэр.
Вы можете запустить следующую команду, чтобы разрешить порт 80:
firewall-cmd --permanent --add-port=80/tcp
Затем перезагрузите службу firewalld, чтобы применить изменения.
firewall-cmd --reload
Настройка внутренних серверов
Далее вам нужно будет установить сервер Apache на оба внутренних сервера. Выполните следующую команду, чтобы установить сервер Apache.
dnf install httpd -y
После установки сервера Apache запустите службу Apache и включите ее запуск при перезагрузке системы:
systemctl start httpd
systemctl enable httpd
Далее вам нужно будет изменить файл index.html по умолчанию на обоих внутренних серверах.
В первом бэкенде отредактируйте файл index.html с помощью следующей команды:
nano /usr/share/httpd/noindex/index.html
Удалите все строки и добавьте следующую строку:
Welcome to First Apache Web Server!
Сохраните и закройте файл, когда закончите.
На втором сервере отредактируйте файл index.html с помощью следующей команды:
nano /usr/share/httpd/noindex/index.html
Удалите все строки и добавьте следующую строку:
Welcome to Second Apache Web Server!
Сохраните и закройте файл, когда закончите.
Проверить HAProxy
На этом этапе HAProxy настроен на пересылку всех входящих запросов на внутренние серверы на основе алгоритма балансировки нагрузки. Теперь пришло время проверить, правильно ли работает HAProxy.
Откройте веб-браузер и введите IP-адрес HAProxy в URL-адрес http://172.16.10.10. Вы должны увидеть свою первую страницу веб-сервера Apache:
Затем снова обновите ту же страницу, вы должны увидеть вторую страницу веб-сервера Apache:
Это подтверждает, что HAProxy работает должным образом и распределяет трафик между двумя внутренними серверами.
Заключение
Поздравляем! вы успешно установили и настроили балансировщик нагрузки HAProxy в Rocky Linux 8. Теперь вы можете внедрить HAProxy в производственной среде для достижения высокой производительности и масштабируемости.