CentOS 6.3 编译安装HAproxy 1.4.22

1. 下载安装HAproxy

wget

tar zxvf haproxy-1.4.22.tar.gz

cd haproxy-1.4.22

make TARGET=linux2628 PREFIX=/usr/local/haprpxy  ##根据内核版本选择TARGET

make install PREFIX=/usr/local/haproxy

2. 设定HAproxy配置文件

cd /usr/local/haproxy
vi haproxy.cfg

global
log 127.0.0.1  local0
#log 127.0.0.1  local1 notice
#log loghost    local0 info
maxconn 4096
chroot /usr/local/haproxy
uid 99                          #所属运行的用户uid
gid 99                          #所属运行的用户组
daemon                        #以后台形式运行haproxy
nbproc 1                        #启动1个haproxy实例
pidfile /usr/local/haproxy/haproxy.pid  #将所有进程写入pid文件
#debug
#quiet
defaults
log    global
log    127.0.0.1      local3        #日志文件的输出定向
mode    http                      #所处理的类别,默认采用http模式,可配置成tcp作4层消息转发
option  httplog                        #日志类别
option  httpclose      #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现
option  dontlognull
option  forwardfor      #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip
option  redispatch            #当serverid对应的服务器挂掉后,强制定向到其他健康服务器
retries 2                    #2次连接失败就认为服务器不可用,主要通过后面的check检查
maxconn 2000
balance roundrobin                    #负载均衡算法
stats  uri    /haproxy-stats          #haproxy 监控页面的访问地址
# 可通过 :80/haproxy-stats 访问
contimeout      5000              #连接超时时间
clitimeout      50000              #客户端连接超时时间
srvtimeout      50000              #服务器端连接超时时间
listen  localhost 0.0.0.0:80                  #运行的端口及主机名
mode    http
option  httpchk GET /index.html          #健康检测
server  s1 192.168.148.110:80  weight 3 check  #后端的主机 IP &权衡
server  s2 192.168.148.110:8080 weight 3 check  #后端的主机 IP &权衡
server  s3 192.168.148.110:8081 weight 3 check  #后端的主机 IP &权衡

也可采用前后台的配置模式

frontend web_vs                        #前台
bind 192.168.148.100:80
mode    http
option  httplog
log    global
default_backend web_pool        #静态服务器池
backend web_pool                    #后台
balance leastconn          #负载均衡算法
option  httpchk HEAD /index.html HTTP/1.0        #健康检查
server  s1 192.168.148.110:80  cookie 1 weight 1 check inter 5s rise 2 fall 3
server  s2 192.168.148.110:8080 cookie 1 weight 1 check inter 5s rise 2 fall 3
server  s3 192.168.148.110:8081 cookie 1 weight 1 check inter 5s rise 2 fall 3
#cookie 1表示serverid为1,check inter 5s 是检测心跳频率
#rise 2是成功2次认为服务器可用,fall 3是失败3次认为服务器不可用,weight代表权重

3. 启动和停止服务

##启动

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

##重启

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg -st `cat /usr/local/haproxy/run/haproxy.pid`

##停止

Killall haproxy

4. 设定haproxy启动文件

vi /etc/rc.d/init.d/haproxy

#! /bin/sh
set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/haproxy/sbin
PROGDIR=/usr/local/haproxy
PROGNAME=haproxy
DAEMON=$PROGDIR/sbin/$PROGNAME
CONFIG=$PROGDIR/haproxy.cfg
PIDFILE=$PROGDIR/run/$PROGNAME.pid
DESC="HAProxy daemon"
SCRIPTNAME=/etc/init.d/$PROGNAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
start()
{
echo -n "Starting $DESC: $PROGNAME"
$DAEMON -f $CONFIG
echo "."
}
stop()
{
echo -n "Stopping $DESC: $PROGNAME"
haproxy_pid=$(cat $PIDFILE)
kill -15 $haproxy_pid
echo "."
}
restart()
{
echo -n "Restarting $DESC: $PROGNAME"
$DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE)
echo "."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
chmod u+x /etc/init.d/haproxy

5. 在rsyslog.conf中开启udp 514的日志收集

vi /etc/rsyslog.conf

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/de993cc5d6104bd6cc31075eca7e012c.html