一、拓扑
二、安装负载均衡服务器软件
wget
tar zxvf haproxy-1.4.18.tar.gz cd haproxy-1.4.18 uname -a make TARGET=linux26 PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxy三、配置haproxy
vi haproxy.cfg
####################################################### global maxconn 5120 chroot /usr/local/haproxy uid 100 gid 100 daemon quiet nbproc 2 pidfile /usr/local/haproxy/haproxy.pid ########################################################defaults
log global log 127.0.0.1 local3 mode http option httplog option dontlognull option redispatch retries 3maxconn 3000
contimeout 5000 clitimeout 50000 srvtimeout 50000 ##########################################################listen web 192.168.1.250:80
mode http # mode tcp balance roundrobin option forwardfor option httpclose option httpchk GET /index.html server web1 192.168.1.251:80 check inter 5000 fall 1 rise 2 weight 1 server web2 192.168.1.252:80 check inter 5000 fall 1 rise 2 weight 1 ##########################################################listen status 192.168.1.250:8080
stats enable stats uri /admin stats auth admin:admin stats realm Haproxy \ statistic #############################################################################到此haproxy简单配置成功#################
四、启动: /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
由于需要方便使用我便写成shell启动脚本:
vi /etc/rc.d/init.d/haproxy
#!/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/haproxy/sbin servername=haproxy serverdir=/usr/local/haproxy daemon=/usr/local/haproxy/sbin/haproxy config=/usr/local/haproxy/haproxy.cfg pidfile=/usr/local/haproxy/haproxy.pid./etc/rc.d/init.d/functions
case "$1" in
start) $daemon -f $config echo "......" ;;stop)
server_id=`cat $pidfile` kill $server_id echo "......." ;;restart)
$daemon -f $config -p $pidfile -sf $(cat $pidfile) echo "......." ;; *) echo "Usage:$0 {start|stop|restart}" exit 1 esac##########################################################################
五、测试
web1-------->ip:192.168.1.251------------>index.html------------->the is web1
web2-------->ip:192.168.1.252------------>index.html------------->the is web2
后台监控管理:
当web1服务器断开时:
当web1服务器恢复时:
#################################到些测试完毕######################
六、日志的配置:
##########添加下面语句#########
vi /etc/syslog.conf
local3.* /var/log/haproxy.log local0.* /var/log/haproxy.log##########修改下面语句##########
vi /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-r -m 0"############重启服务#############
service syslog restart
service haproxy restart
#############################################################################
简单讲解配置文件:
maxconn 5120 ###最大连接数
chroot /usr/local/haproxy ###工作目录 uid 100 ###运行用户uid gid 100 ###这个就是用户组 daemon ###在后台运行 quiet ###使用的模式(启动时没有输出),可以使用debug模式 nbproc 2 ###启动实例设置 pidfile /usr/local/haproxy/haproxy.pid ###这个是PID log 127.0.0.1 local3 ###日志文件 mode http ###使用http模式,还有一个tcp模式,这个是七层和四层的区别 option httplog ###日志类型 retries 3 ###检查连接服务器失败的次数contimeout 5000 ###连接超时 clitimeout 50000 ###客户端连接超时 srvtimeout 50000 ###服务器端连接超时
balance roundrobin ###算法
option httpchk GET /index.html ###检查的页面 #####################以下两句源服务器##################### server web1 192.168.1.251:80 check inter 5000 fall 1 rise 2 weight 1 server web2 192.168.1.252:80 check inter 5000 fall 1 rise 2 weight 1########################监控页面##########################
listen status 192.168.1.250:8080 stats enable stats uri /admin stats auth admin:admin stats realm Haproxy \ statistic