Установка и настройка балансировщика HAProxy (Ubuntu)

HAProxy — балансировщик нагрузки для TCP и HTTP приложений посредством распределения входящих запросов на несколько обслуживающих серверов.
HAProxy поддерживает балансировку, как HTTP/HTTPS/HTTP2 (например, веб-серверы или Elasticsearch), так и TCP соединений (например, postgres или redis).
Поддерживаются разные алгоритмы балансировки запросов.

Установка HAProxy

1. Обновите менеджер пакетов(репозиториев) apt:

apt update -y

2. Установите HAProxy, используя следующую команду:

apt install haproxy -y

3. Запустите службу балансировщика HAProxy:

systemctl start haproxy

4. Добавьте HAProxy в автозагрузку:

systemctl enable haproxy

Настройка базовой конфигурации HAProxy

1. Переместите конфигурационный файл по умолчанию:

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.backup

2. Создайте новый конфигурационный файл с помощью команды:

nano /etc/haproxy/haproxy.cfg

Базовая часть кофигурационного файла описывает параметры работы сервера HAProxy: режим работы, таймауты, количество подключений, включение web‑интерфейса и т.д.
В примере приведена необходимая конфигурация параметров для работы сервера HAProxy.
Подробнее об используемых параметрах читайте в официальной документации HAProxy Documentation.

Пример базовой конфигурационный HAProxy для файла haproxy.cfg
global
    maxconn 100000
    log /dev/log local0
    log /dev/log local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

defaults
    mode tcp
    log global
    retries 2
    timeout queue 5s
    timeout connect 5s
    timeout client 60m
    timeout server 60m
    timeout check 15s

listen stats
    mode http
    bind haproxy-server.your_domain:7000
    stats enable
    stats uri /

### Web ELMA365 ###
### Web ELMA365 ###

### PostgreSQL ###
### PostgreSQL ###

### RabbitMQ ###
### RabbitMQ ###

### S3 MinIO ###
### S3 MinIO ###

### Docs Server ###
### Docs Server ###

Пример конфигурации HAProxy для веб сервера Nginx:
global
log 127.0.0.1   local2
chroot          /var/lib/haproxy
pidfile         /var/run/haproxy.pid
maxconn         4096
user            haproxy
group           haproxy
daemon

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    20s
timeout         queue           1m
timeout         connect         10s
timeout         client          1m
timeout         server          1m
timeout         http-keep-alive 30s
timeout         check           10s
maxconn         3000

frontend fe_http
option          forwardfor except 127.0.0.1
option          httpclose
bind            *:8181
default_backend be_http

backend  be_http
balance         roundrobin
option          httpchk
server          ws_1 192.168.1.1:80 check port 80
server          ws_2 192.168.1.2:80 check port 80

3.Перезапустите балансировщик нагрузки HAProxy:

systemctl restart haproxy

 

  • 0 Пользователи нашли это полезным

Помог ли вам данный ответ?

Ищете что-то другое?

mhost.by