HAProxy is a very fast and reliable solution for high availability, load balancing, It supports TCP and HTTP-based applications. Nowadays most of the websites need 99.999% uptime for their site, which is not possible with single server setup. Then we need some high availability environment that can easily manage with single server failure.


This article will help you to install HAProxy on CentOS, RHEL servers and will configure a Layer 4 Load Balancing (Transport Layer). Which will balance load and transfer requests to different-2 servers based on IP address and port numbers.

Step 1 – Install HAProxy

HAProxy package is available under the default yum repository for CentOS, Redhat systems. Use the following yum package manager command to install HAProxy on your system.

sudo yum install haproxy

Step 2 – Configure HAProxy

Update your HAProxy configuration file /etc/haproxy/haproxy.cfg as per your requirement, You may also use below given configuration file as an example of setup and modify it.

vim /etc/haproxy/haproxy.cfg
[ Update red mark values as per your network setup ]
        log   local0
        log   local1 debug
        maxconn   45000 # Total Max Connections.
        nbproc      1 # Number of processing cores.
        timeout server 86400000
        timeout connect 86400000
        timeout client 86400000
        timeout queue   1000s

# [HTTP Site Configuration]
listen  http_web
        mode http
        balance roundrobin  # Load Balancing algorithm
        option httpchk
        option forwardfor
        server server1 weight 1 maxconn 512 check
        server server2 weight 1 maxconn 512 check

# [HTTPS Site Configuration]
listen  https_web
        mode tcp
        balance source# Load Balancing algorithm
        reqadd X-Forwarded-Proto: http
        server server1 weight 1 maxconn 512 check
        server server2 weight 1 maxconn 512 check

Change the ips in configuration file as per your network setup. In HTTP Site Configuration section if any request on ip on port 80, this will be redirected to port 80 of or servers. Similarly in HTTPS Site Configuration if any request on ip on port 443, this will be redirected to port 443 of or servers.

You also need to make a few changes in the configuration file as per your system configuration.

  • nbproc <value> # Number of processing cores in your system.
  • mode <value> # ‘http’ for http site and ‘tcp’ for https site
  • balance <value> # Type of load balancing like ‘source’, ’roundrobin’ etc.
  • Step 3 – Start HAProxy Service

    Start HAProxy service using the following command, also configure it to auto-start on system boot.

systemctl start haproxy
systemctl enable haproxy

And You have done it.

Congratulation’s! you have successfully configured HAProxy load balancer. Read next article to enable haproxy stats and setup ACL in HAProxy.

For more configuration details check below url. http://haproxy.1wt.eu/download/1.4/doc/configuration.txt