How to Set up HAProxy on CentOS

HAProxy is a service that can help with load balancing of web servers, or just proxying traffic. We recommend installing through the Epel repository to keep the packages updated.

Install Epel:

Run the following commands:

yum -y install epel-release

If yum does not find the epel-release package, please see How to enable epel with RPM for installing it via RPM.

Install HAProxy

Run the following command:

yum -y install haproxy

Once it has been installed, you can edit the config file by running the following:

nano /etc/haproxy/haproxy.cfg


Sample configuration for Web Server Proxy

global
    # Where to save the logs, 
    log         127.0.0.1 local2 info
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    # Max connections per process
    maxconn     256
    # User and group process runs under
    user        haproxy
    group       haproxy
    daemon

defaults
    # Mode the server is running in
    mode               http
    log                global
    option             httplog
    timeout connect    10s
    timeout client     30s
    timeout server     30s

# Define Frontend (set any name for http-in section)
frontend http-in
    # Set server to listen on port 80
    bind *:80
    # Set default backend to forward traffic to
    default_backend    backend_servers
    option             forwardfor

# Define Backend server with roundrobin mode
backend backend_servers
    # Set balance type as roundrobin
    balance            roundrobin
    # Define backend servers
    server             <hostname> 10.0.0.31:80 check
    server             <hostname> 10.0.0.32:80 check

Auto-start for CentOS 7

To get HAproxy to run automatically after configuration run the following commands:

systemctl start haproxy
systemctl enable haproxy