Установка и настройка HAProxy в Linux

HAProxy — прокси-сервер для балансировки нагрузки TCP и HTTP приложений, методом распределения на несколько серверов.

Команда установки HAProxy в Ubuntu/Debian:

sudo apt-get install haproxy

Для CentOS:

yum install haproxy

Посмотреть установленную версию можно командой:

haproxy -v

Проверим будет ли он автоматически запускаться при включении системы, должно быть ENABLED=1 (в редакторе nano CTRL+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/default/haproxy

В CentOS просто выполним команду:

chkconfig haproxy on

Сделаем копию конфигурационного файла на всякий случай:

sudo cp /etc/haproxy/haproxy.cfg{,.original}

Откроем в редакторе основной конфигурационный файл:

sudo nano /etc/haproxy/haproxy.cfg

Приведу пример конфигурации:

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    user haproxy
    group haproxy
    daemon

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    contimeout     5000
    clitimeout     50000
    srvtimeout     50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http
    retries 3
        
listen webfarm 0.0.0.0:80
    mode http
    stats enable
    stats uri /haproxy?stats
    stats auth user:password
    maxconn 5000
    balance roundrobin
    option httpclose
    option forwardfor
    server webserver01 192.168.88.50:80 check
    server webserver02 192.168.88.51:80 check

Параметр maxconn 5000 определяет максимальное количество одновременных соединений, 0 используется для снятия лимита, если не указывать то будет стандартно 2000.

Например чтобы использовать Apache2 на этой же локальной машине, изменим в /etc/apache2/ports.conf и /etc/apache2/sites-enabled/ конфигурационных фалйах номер его порта с 80 например на 81, а в /etc/haproxy/haproxy.cfg укажем:

server webserver01 0.0.0.0:81 check

Каждый раз после изменений конфигурации необходимо выполнять перезапуск:

sudo service apache2 restart
sudo service haproxy restart

На этом установка и основная настройка HAProxy завершена.

Добавить комментарий