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 завершена.