您的位置:首页 > 其它

Haproxy安装及配置

2016-02-15 15:08 387 查看
1.安装# wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz# tar zcvf haproxy-1.3.20.tar.gz# cd haproxy-1.3.20# make TARGET=linux26 PREFIX=/usr/local/haproxy #将haproxy安装到/usr/local/haproxy# make install PREFIX=/usr/local/haproxy2.配置安装完毕后,进入安装目录配置文件,默认情况下目录里是没有.cfg配置文件的,可以回到安装文件目录下将examples下的haproxy.cfg拷贝到usr/local/haproxy下。# cd /usr/local/haproxy# vi haproxy.cfg默认文件内容如下: # this config needs haproxy-1.1.28 or haproxy-1.2.1 globallog 127.0.0.1 local0log 127.0.0.1 local1 notice#log loghost local0 infomaxconn 4096chroot /usr/share/haproxyuid 99gid 99daemon#debug#quietdefaultslog globalmode httpoption httplogoption dontlognullretries 3redispatchmaxconn 2000contimeout 5000clitimeout 50000srvtimeout 50000listen appli1-rewrite 0.0.0.0:10001cookie SERVERID rewritebalance roundrobinserver app1_1 192.168.34.23:8080 cookie app1inst1 check inter 2000 rise 2 fall 5server app1_2 192.168.34.32:8080 cookie app1inst2 check inter 2000 rise 2 fall 5server app1_3 192.168.34.27:8080 cookie app1inst3 check inter 2000 rise 2 fall 5server app1_4 192.168.34.42:8080 cookie app1inst4 check inter 2000 rise 2 fall 5listen appli2-insert 0.0.0.0:10002option httpchkbalance roundrobincookie SERVERID insert indirect nocacheserver inst1 192.168.114.56:80 cookie server01 check inter 2000 fall 3server inst2 192.168.114.56:81 cookie server02 check inter 2000 fall 3capture cookie vgnvisitor= len 32option httpclose # disable keep-aliverspidel ^Set-cookie:\ IP= # do not let this cookie tell our internal IP addresslisten appli3-relais 0.0.0.0:10003dispatch 192.168.135.17:80listen appli4-backup 0.0.0.0:10004option httpchk /index.htmloption persistbalance roundrobinserver inst1 192.168.114.56:80 check inter 2000 fall 3server inst2 192.168.114.56:81 check inter 2000 fall 3 backuplisten ssl-relay 0.0.0.0:8443option ssl-hello-chkbalance sourceserver inst1 192.168.110.56:443 check inter 2000 fall 3server inst2 192.168.110.57:443 check inter 2000 fall 3server back1 192.168.120.58:443 backuplisten appli5-backup 0.0.0.0:10005option httpchk *balance roundrobincookie SERVERID insert indirect nocacheserver inst1 192.168.114.56:80 cookie server01 check inter 2000 fall 3server inst2 192.168.114.56:81 cookie server02 check inter 2000 fall 3server inst3 192.168.114.57:80 backup check inter 2000 fall 3capture cookie ASPSESSION len 32srvtimeout 20000option httpclose # disable keep-aliveoption checkcache # block response if set-cookie & cacheablerspidel ^Set-cookie:\ IP= # do not let this cookie tell our internal IP addresserrorloc 502 http://192.168.114.58/error502.htmlerrorfile 503 /etc/haproxy/errors/503.http根据实际需求,更改配置文件,我的配置如下global #全局设置 log 127.0.0.1 local0 #日志输出配置,所有日志都记录在本机,通过local0输出 #log loghost local0 info maxconn 4096 #最大连接数 chroot /usr/local/haproxy uid 99 #所属运行的用户uid gid 99 #所属运行的用户组 daemon #以后台形式运行haproxy nbproc 2 #启动2个haproxy实例 pidfile /usr/local/haproxy/haproxy.pid #将所有进程写入pid文件 #debug #quietdefaults #默认设置 #log global log 127.0.0.1 local3 #日志文件的输出定向 mode http #所处理的类别,默认采用http模式,可配置成tcp作4层消息转发 option httplog #日志类别,采用httplog option dontlognull option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip option httpclose #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现 retries 3 #3次连接失败就认为服务器不可用,主要通过后面的check检查 option redispatch #当serverid对应的服务器挂掉后,强制定向到其他健康服务器 maxconn 2000 #最大连接数stats uri /haproxy-admin #haproxy 监控页面的访问地址 contimeout 5000 #连接超时时间 clitimeout 50000 #客户端连接超时时间 srvtimeout 50000 #服务器端连接超时时间
stats auth  Frank:Frank
#设置监控页面的用户和密码:Frank
stats hide
-
version
#隐藏统计页面的HAproxy版本信息
frontend http-in #前台 bind *:80 mode http option httplog log global default_backend htmpool #静态服务器池backend htmpool #后台 balance leastconn#负载均衡算法option httpchk HEAD /index.htm HTTP/1.0 #健康检查 server web1 10.16.0.9:8085 cookie 1 weight 5 check inter 2000 rise 2 fall 3 server web2 10.16.0.10:8085 cookie 2 weight 3 check inter 2000 rise 2 fall 3#cookie 1表示serverid为1,check inter 1500 是检测心跳频率#rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重3.加上日志支持# vim /etc/syslog.conf在最下边增加local3.* /var/log/haproxy.loglocal0.* /var/log/haproxy.log#vim /etc/sysconfig/syslog修改: SYSLOGD_OPTIONS="-r -m 0"重启日志服务service syslog restart4.设置开机启动为了方便系统在开机时加载,还可以创建启动脚本:# vim /etc/rc.d/init.d/haproxy 内容如下:#! /bin/shset -ePATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/haproxy/sbinPROGDIR=/usr/local/haproxyPROGNAME=haproxyDAEMON=$PROGDIR/sbin/$PROGNAMECONFIG=$PROGDIR/$PROGNAME.confPIDFILE=$PROGDIR/$PROGNAME.pidDESC="HAProxy daemon"SCRIPTNAME=/etc/init.d/$PROGNAME# Gracefully exit if the package has been removed.test -x $DAEMON || exit 0start(){echo -n "Starting $DESC: $PROGNAME"$DAEMON -f $CONFIGecho "."}stop(){echo -n "Stopping $DESC: $PROGNAME"haproxy_pid=cat $PIDFILEkill $haproxy_pidecho "."}restart(){echo -n "Restarting $DESC: $PROGNAME"$DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE)echo "."}case "$1" instart)start;;stop)stop;;restart)restart;;*)echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2exit 1;;esacexit 0保存后赐予可执行权限# chmod +x /etc/rc.d/init.d/haproxy就可以使用 service haproxy start|stop|restart 来控***务的启动停止跟重启。并通过以下命令加载到开机服务启动列表# chkconfig --add haproxy5.启动服务启动服务:# /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/logs/haproxy.pid` (没有换行)停止服务:# killall haproxy6.举例在浏览器中输入haproxy监控地址:http://10.16.0.246:1080/haproxy-admin,如图所示在浏览器输入haproxy设置的对外访问地址:http://10.16.0.244/,如图所示参考文献:http://network.51cto.com/art/201110/295955_1.htmhttp://blog.csdn.net/maijian/article/details/6082283http://blog.sina.com.cn/s/blog_51d3553f0100u1bb.htmlhttp://andrewyu.blog.51cto.com/1604432/647907http://blog.chinaunix.net/space.php?uid=22600159&do=blog&id=2124188http://sookk8.blog.51cto.com/455855/579719http://freehat.blog.51cto.com/1239536/1347882http://www.cnblogs.com/dkblog/archive/2012/03/13/2393321.htmlhttp://jlsfwq.blog.51cto.com/818700/165617
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息