Install and Configure HAProxy on CentOS/RHEL 5/6
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.
Setup Instructions:
Step 1: Setup Yum Repository
CentOS/RHEL 5 users required to add EPEL repository in order to install HAProxy packages. For CentOS 6 HAProxy packages are available under base repository, So there are no need to add any repository for them.
On CentOS/RHEL 5:
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
Step 2: Install HAProxy
Install HAProxy package using yum package manager from command line interface using following comamnd.
# yuminstall haproxy
Step 3: 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 ]
global log 127.0.0.1 local0 log 127.0.0.1 local1 debug maxconn 45000 # Total Max Connections. This is dependent on ulimit daemon nbproc 1 # Number of processing cores. Dual Dual-core Opteron is 4 cores for example. defaults timeout server 86400000 timeout connect 86400000 timeout client 86400000 timeout queue 1000s # [HTTP Site Configuration] listen http_web192.168.10.10:80 mode http balance roundrobin # Load Balancing algorithm option httpchk option forwardfor server server1192.168.10.100:80 weight 1 maxconn 512 check server server2192.168.10.101:80 weight 1 maxconn 512 check # [HTTPS Site Configuration] listen https_web192.168.10.10:443 mode tcp balance source# Load Balancing algorithm reqadd X-Forwarded-Proto:\ http server server1192.168.10.100:443 weight 1 maxconn 512 check server server2192.168.10.101:443 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 192.168.10.10 on port 80, this will be redirected to port 80 of 192.168.10.100 or 192.168.10.101 servers. Similarly in HTTPS Site Configuration if any request on ip 192.168.10.10 on port 443, this will be redirected to port 443 of 192.168.10.100 or 192.168.10.101 servers.
You also need to make few changes in 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 sitebalance <value> # Type of load balancing like 'source', 'roundrobin' etc.
Step 4: Start HAProxy Service
Start HAProxy service using following command, also configure it to auto start on system boot.
# service haproxy start # chkconfig haproxy on
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
1