1、安装haproxy
#tar xzvf haproxy-1.5.9.tar.gz
#cd haproxy-1.5.9
# make TARGET=linux26 PREFIX=/usr/local/haproxy
# make install PREFIX=/usr/local/haproxy
# mkdir /usr/local/haproxy/etc
# mkdir -p /data/logs/haproxy
2、编辑haproxy 配置文件
# vi /usr/local/haproxy/etc/haproxy.conf
global log 127.0.0.1 local0 maxconn 4096 chroot /usr/local/haproxy uid 0 gid 0 daemon nbproc 1 pidfile /usr/local/haproxy/haproxy.pid #debug ulimit-n 65535 defaults log global mode http retries 3 option httplog option httpclose option dontlognull option forwardfor option abortonclose log 127.0.0.1 local3 #balance roundrobin maxconn 2048 timeout connect 5000 timeout client 50000 timeout server 50000 listen admin_stats bind *:8000 stats refresh 30s stats uri /status stats realm Haproxy Manager stats auth admin:admintest stats hide-version frontend www bind *:80 acl web_fp path_beg -i / use_backend www_site if web_fp frontend web_manage bind *:8080 acl web_mgr path_beg -i /web_manage use_backend mgr_site if web_mgr backend www_site #mode http #fullconn 4000 option httpchk GET /about.jsp stats refresh 2 balance roundrobin cookie SERVERID insert indirect server web_fp1 192.168.0.2:10000 cookie 1a check inter 2000 rise 2 fall 3 weight 50 server web_fp2 192.168.0.2:11000 cookie 2a check inter 2000 rise 2 fall 3 weight 50 backend mgr_site server web_mgr 192.168.0.2:9000 check inter 2000 rise 2 fall 2
3、编辑haproxy 服务脚本
#vi /etc/init.d/haproxy
#!/bin/sh #chkconfig: 35 86 86 #description: HAProxy is a TCP/HTTP reverse proxy. #processname: haproxy # config: /usr/local/haproxy/etc/haproxy.conf # pidfile: /usr/local/haproxy/haproxy.pid # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin BINFILE="/usr/local/haproxy/sbin/haproxy" CFGFILE="/usr/local/haproxy/etc/haproxy.conf" PIDFILE="/usr/local/haproxy/haproxy.pid" LOCKFILE="/usr/local/haproxy/haproxy.lock" RETVAL=0 start() { [[ -x $BINFILE ]] || exit 5 [[ -f $CFGFILE ]] || exit 6 $BINFILE -c -q -f $CFGFILE [[ $? -ne 0 ]] && echo "The HAProxy configure has error." && return 1 echo -n "Starting HAProxy......" $BINFILE -f $CFGFILE -p $PIDFILE RETVAL=$? echo [[ $RETVAL -eq 0 ]] && touch $LOCKFILE return $RETVAL } stop() { echo -n "Shutting down HAProxy......" while true do killall $BINFILE [[ -z `ps aux | grep sbin/haproxy | grep -v grep` ]] && break done RETVAL=$? echo [[ $RETVAL -eq 0 ]] && rm -f $LOCKFILE $PIDFILE return $RETVAL } restart() { stop sleep 1 start } reload() { [[ -z `ps aux | grep sbin/haproxy | grep -v grep` ]] && echo "The HAProxy is not running." && return 1 echo -n $"Reloading HAProxy......" if [[ -f $PIDFILE ]]; then $BINFILE -f $CFGFILE -st `cat $PIDFILE` else $BINFILE -f $CFGFILE -st `ps aux | grep sbin/haproxy | grep -v grep | awk '{print $2}'` fi RETVAL=$? echo return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; condrestart) [[ -e $LOCKFILE ]] && restart || : ;; check) $BINFILE -c -q -V -f $CFGFILE ;; *) echo "Usage: service haproxy {start|stop|restart|reload|condrestart|check}" RETVAL=1 esac exit $RETVAL
4、编辑系统日志配置
# vim /etc/rsyslog.conf
默认有下面的设置,会读取 /etc/rsyslog.d/*.conf目录下的配置文件
$IncludeConfig /etc/rsyslog.d/*.conf
5、为haproxy创建一个独立的配置文件
# vim /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log
#如果不加下面的的配置则除了在/var/log/haproxy.log中写入日志外,也会写入message文件
6、配置rsyslog的主配置文件,开启远程日志
# vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS=" -c 2 -r -m 0"
#-c 2 使用兼容模式,默认是 -c 5
#-r 开启远程日志
#-m 0 标记时间戳。单位是分钟,为0时,表示禁用该功能
7、重启haproxy和rsyslog服务
#/etc/init.d/rsyslog restart
#/etc/init.d/haproxy restart
8、查看haproxy 状态
#/etc/init.d/haproxy status
haproxy 安装完成。