当前位置: > CentOS > CentOS服务器 > 负载均衡 >

Centos haproxy负载均衡

时间:2014-05-03 19:48来源:linux.it.net.cn 作者:it

一、拓扑

 

 

二、安装负载均衡服务器软件

        wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.18.tar.gz
        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 3

   maxconn 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

本文出自 “游造技术博客” 博客,请务必保留此出处http://youzao.blog.51cto.com/3946111/752211

(责任编辑:IT)
------分隔线----------------------------