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

Как установить и настроить HAProxy на Rocky Linux 8


На этой странице

  1. Предпосылки
  2. Установите HAProxy
  3. Настройка HAProxy
  4. Настройка брандмауэра
  5. Настройка внутренних серверов
  6. Подтвердить HAProxy
  7. Заключение

Когда вы развертываете приложение в Интернете, доступность, масштабируемость и производительность приложения очень важны для лучшего взаимодействия с пользователем. Существует множество технологий, обеспечивающих избыточность, таких как балансировка нагрузки, кластеризация и прокси.

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 в производственной среде для достижения высокой производительности и масштабируемости.