Как установить HAProxy на CentOS 8
В этом руководстве мы покажем вам, как установить HAProxy на вашем CentOS 8. Для тех из вас, кто не знал, HAProxy — это бесплатный балансировщик нагрузки HTTP / TCP и прокси-сервер с высокой доступностью. Он распределяет запросы между несколькими серверами для устранения проблем, возникающих в результате сбоя одного сервера. HA Proxy используется рядом известных веб-сайтов, включая GitHub, Bitbucket, Stack Overflow, Reddit, Tumblr, Twitter и Tuenti, а также в продукте OpsWorks от Amazon Web Services.
В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo
‘ к командам для получения привилегий root. Я покажу вам пошаговую установку HAProxy на CentOS 8.
Установите HAProxy на CentOS 8
Шаг 1. Во-первых, давайте начнем с проверки актуальности вашей системы.
sudo clean all sudo dnf update
Шаг 2. Установка HAProxy на CentOS 8.
HAProxy доступен в CentOS 8 по умолчанию. Теперь используйте следующую dnf
команду для установки HAProxy:
sudo dnf install haproxy
Шаг 3. Настройка HAProxy.
Мы собираемся создать файл конфигурации, содержащий необходимые настройки и конфигурации:/etc/haproxy/haproxy.cfg
sudo nano /etc/haproxy/haproxy.cfg
Введите в файл следующее:
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats ssl-default-bind-ciphers PROFILE=SYSTEM ssl-default-server-ciphers PROFILE=SYSTEM defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 frontend main bind *:5000 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static default_backend app backend static balance roundrobin server static 127.0.0.1:4331 check backend app balance roundrobin server app1 127.0.0.1:5001 check server app2 127.0.0.1:5002 check server app3 127.0.0.1:5003 check server app4 127.0.0.1:5004 check
Вы можете просмотреть подробные сведения о конфигурации и получить дополнительную информацию по этому URL-адресу . После того, как вы настроили HAProxy, самое время запустить службу:
sudo systemctl start haproxy sudo systemctl enable haproxy
Шаг 4. Настройте брандмауэр.
Мы добавим HAProxy в брандмауэр CentOS 8 и обновим правила с помощью следующих команд:
sudo firewall-cmd --add-port=8088/tcp --permanent sudo firewall-cmd --reload
Шаг 5. Настройте ведение журнала HAProxy.
Чтобы настроить стандартное ведение журнала HAProxy, отредактируйте и включите прием системного журнала UDP на порту 514:/etc/rsyslog.conf
sudo nano /etc/rsyslog.conf
... # Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html module(load="imudp") # needs to be done just once input(type="imudp" port="514") ... *.info;mail.none;authpriv.none;cron.none,local2.none /var/log/messages local2.* /var/log/haproxy.log ...
Затем сохраните файл конфигурации и выполните команду ниже, чтобы проверить наличие ошибок:
rsyslogd -N1 sudo systemctl restart rsyslog haproxy
Шаг 6. Настройте Apache X-Forwarded-For Logging на внутренних серверах.
Теперь мы авторизуемся на внутренних серверах и настраиваем Apache для регистрации заголовков X-Forwarded-For. Строка по умолчанию, которую мы изменяем:
... LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common ...
Отредактируйте эту строку так, чтобы она выглядела так:
... LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common ...
Сохраните файл и перезапустите Apache:
apachectl configtest sudo systemctl restart httpd
Шаг 7. Тестирование HAProxy Load Balancer.
Чтобы убедиться, что HAProxy может балансировать нагрузку HTTP-запросов, перейдите в браузер и получите доступ к HAProxy, используя имя хоста или IP-адрес.
Поздравляю! Вы успешно установили HAProxy . Благодарим за использование этого руководства для установки HAProxy в ваших системах CentOS 8. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт HAProxy .