haproxy
Install
- Download haproxy and change directory to download directory
- Run make and make install as root
Make
To choose TARGET run
uname -a
Output:
Linux somehost 2.6.32-358.11.1.el6.x86_64 #1 SMP Wed May 15 10:48:38 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux
Considering the above was kernel 2.6, using TARGET as below.
make TARGET=linux2628 USE_PCRE=1 USE_LIBCRYPT=1 USE_LINUX_SPLICE=1 USE_LINUX_TPROXY=1
Some options listed may not work - feel free to remove them such as USE_PCRE=1
Make Install
make install
haproxy typically gets installed at /usr/local/sbin/haproxy
Configuration
To configure, create a configuration file at chosen location. Preferred: /etc/haproxy/haproxy.cfg
- Load balance on port 8000
- Sticky sessions between multiple servers (someserver1 & someserver2)
- Add administration (port 7999)
global daemon maxconn 4096 defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend http-in bind *:8000 default_backend servers backend servers retries 2 fullconn 4096 balance roundrobin cookie SERVERID insert indirect nocache server server01 someserver1:8080 check cookie s01 server server02 someserver1:8081 check cookie s02 server server03 someserver1:8082 check cookie s03 server server04 someserver2:8090 check cookie s04 server server05 someserver2:8091 check cookie s05 server server06 someserver2:8092 check cookie s06 listen stats :7999 mode http stats enable stats hide-version stats realm Haproxy\ Statistics stats uri /
Start
Simple way to start is as below. This runs as a daemon, since daemon is specified in the configuration. If not, add option -D.
haproxy -f /etc/haproxy/haproxy.cfg
Logging
Update /etc/rsyslog.conf and related
Edit /etc/rsyslog.conf and uncomment:
$ModLoad imudp $UDPServerRun 514
Edit /etc/rsyslog.d/haproxy.conf and append line:
local2.* /var/log/haproxy.log
Restart rsyslog:
service rsyslog restart
Change permissions on log file:
chmod o+r /var/log/haproxy.log chmod g+r /var/log/haproxy.log
Update /etc/haproxy/haproxy.cfg
Edit /etc/haproxy/haproxy.cfg:
Add line in global section
:
log 127.0.0.1 local2
Add lines to frontend http-in
section:
option httplog log global
Restart haproxy