HAProxy – proxy server for load balancing of TCP and HTTP applications, a method of distribution to multiple servers.
The Haproxy installation command in Ubuntu / Debian:
sudo apt-get install haproxy
For CentOS:
yum install haproxy
To view the installed version, you can use the command:
haproxy -v
We will check whether it will automatically start when the system is turned on, there should be ENABLED = 1 (in the nano editor CTRL+X to exit, y/n to save or cancel changes):
sudo nano /etc/default/haproxy
In CentOS, simply execute the command:
chkconfig haproxy on
Make a copy of the configuration file just in case:
sudo cp /etc/haproxy/haproxy.cfg{,.original}
Open the main configuration file in the editor:
sudo nano /etc/haproxy/haproxy.cfg
I will give an example of a configuration:
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
Parameter maxconn 5000 defines the maximum number of simultaneous connections, 0 is used to remove the limit, if not specified, it will be standard 2000.
For example, to use Apache2 on the same local machine, change its /etc/apache2/ports.conf and /etc/apache2/sites-enabled/ configuration files from 80 to 81 for example, and /etc/haproxy/haproxy. cfg we indicate:
server webserver01 0.0.0.0:81 check
Each time after a configuration change, you must restart:
sudo service apache2 restart
sudo service haproxy restart
This completes the installation and the basic configuration of HAProxy.