====== 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
==== Logging Resources ====
* https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/3/html/Installation_and_Configuration_Guide/Configuring_the_rsyslog_Server.html
* https://transloadit.com/blog/2010/08/haproxy-logging/
* http://www.percona.com/blog/2014/10/03/haproxy-give-me-some-logs-on-centos-6-5/
* http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#8