HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for very high traffic web sites and powers quite a number of the world's most visited ones. Over the years it has become the de-facto standard opensource load balancer, is now shipped with most mainstream Linux distributions.

Deploying your cloud server
If you have not already registered with Cloudwafer, you should begin by getting signed up. Take a moment to create an account after which you can easily deploy your cloud servers.

Once you have signed up, log into your Cloudwafer Client Area with the password provided in your mail and deploy your Cloudwafer cloud server.

Updating System Packages on CentOS
It is always recommended that you update the system to the latest packages before beginning any major installations. This is done with the command below:

sudo yum update

Step One: Install Haproxy

Issue the command below to install haproxy:

sudo yum install haproxy

Cloudwafer-Haproxy-CentOS-1 Cloudwafer-Haproxy-CentOS-2

Step Two: Configure the load balancer
An HAProxy basic configuration informs the load balancing system on what kind of connections it should be listening for and which servers it should relay the connections to.

We are going to create a configuration file /etc/haproxy/haproxy.cfg containing the necessary settings and configurations.

sudo nano /etc/haproxy/haproxy.cfg

Enter the following into the file:

global
   log /dev/log local0
   log /dev/log local1 notice
   chroot /var/lib/haproxy
   stats socket /run/haproxy/admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

defaults
     log global
     mode http
     option httplog
     option dontlognull
     timeout connect 5000
     timeout client 50000
     timeout server 50000

frontend http_front
     bind *:80
     stats uri /haproxy?stats
     default_backend http_back

backend http_back
     balance roundrobin
     server my_server private_IP:80 check
     server my_server private_IP:80 check

Ensure to save the file before closing it.

Next, restart Haproxy using the command below:

sudo systemctl restart haproxy
sudo systemctl enable haproxy

You can view the official Haproxy Documentation for more information regarding the various types of Load Balancing and more information.