Haproxy------在windows下配置负载均衡

配置Haproxy

  1.解压Haproxy到d:\haproxy

  2.置haproxy.cfg文件

 

global  
        log 127.0.0.1   local0   
        maxconn 1500   
        daemon  
   
defaults  
        log     127.0.0.1       local3  
        mode    http  
        option  httplog  
        option  dontlognull  
        option  redispatch  
        retries 3  
        contimeout    5000  
        clitimeout      50000  
        srvtimeout     50000  
  
listen private_monitoring :18100   #监听端口         
        mode http
    option httplog
    stats enable
    stats uri /stats
    stats refresh 5s

3.建一个run.bat,内容如下: haproxy.exe -f haproxy.cfg -d 。其中, -d会在窗口运行, -D则是后台程序,只能在任务管理器中

  4.运行 haproxy -f haproxy.cfg.

  5.检测启动是否成功。

 Haproxy配置文件选项参数详解
global 
        log 127.0.0.1   local0 info 
        #全局的日志配置,使用本机的syslog来记录log,请使用/dev/log,其中日志级别是[err warning info debug].local0 是日志设备(/etc/syslog/conf中所定义), 
        #必须为如下24种标准syslog设备的一种: 
        #kern   user   mail   daemon auth   syslog lpr    news    
        #uucp   cron   auth2  ftp    ntp    audit  alert  cron2   
        #local0 local1 local2 local3 local4 local5 local6 local7   
        maxconn  65536      #最大连接数 
        ulimit-n  131087   #必须是maxconn的两倍以上     
        chroot  /usr/local/haproxy  #适用于chroot环境,为了安全      
        uid 99              #haproxy运行的用户和组 
        gid 99 
        daemon             #后台运行      
        nbproc  4           #设置4个并发进程,在做debug时建议设置为1 
        pidfile /usr/local/haproxy/logs/haproxy.pid  #PID文件所在地 
        option nolinger     #在连接关闭时立即清理连接,减少处于FIN_WAIT1状态的连接 
        #debug 
        #quiet 


defaults 
        log     global 
        mode    http         #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK 
        option  httplog      #启用http请求log 
        option  dontlognull 
        option  http-server-close 
        option  abortonclose       #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接 
        option  allbackups             #但设置了backup的时候,默认第一个backup会优先,设置option allbackups后所有备份服务器权重一样 
        option  forwardfor             #如果后端服务器需要获得客户端的真实IP需要配置次参数,将可以从Http Header中获得客户端IP
        option  redispatch             #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器 
        stats   uri /admin/status      #监控haproxy状态的页面,可以使用http://IP/admin/status查看 
        stats   auth admin:admin@123   #登录监控页面的用户名密码 
        stats   refresh 60s            #监控页面的刷新时间 
        retries 3                      #三次连接失败就认为是服务器不可用,也可以通过后面设置 
        maxconn 65536                  #默认的最大连接数 
        contimeout      5000           #连接超时 
        clitimeout      50000          #客户端超时 
        srvtimeout      50000          #服务器超时 


frontend web_nginx                     #定义前端服务器,相当于F5里的VIP的概念 
        mode http 
        maxconn 65536 
        bind 192.168.32.30:80         #设定vip的监听端口 
        bind-process 4                #针对多核处理,启用处理器数量 

        acl php_nginx path_end  .php      #判断文件后缀名是不是.php,如果是返回true 
        acl html_nginx path_end .html     #判断文件后缀名是不是.html,如果是返回true 


        use_backend php_backend if php_nginx   #当满足php_nginx策略时使用php_backend的backend 
        use_backend html_backend if html_nginx #当满足html_nginx策略时使用html_backend的backend 

backend php_backend 
        mode http 
        fullconn  4096        #设置最大连接 
        balance roundrobin    #负载均衡的方式,roundrobin平均方式 
        option  httpchk HEAD /check.php HTTP/1.0   
        #心跳检查Haproxy会判断你的后端web的根上存在check.txt没有,以此作为haproxy-status的监控状态依据,将它#掉即可; 
        #如果是生产环境,你可将check.php改为index.jsp或index.php即可。 
        #一般的健康检查可以采用HEAD方法来做,而不是才采用GET方法,用于HEAD方法没有数据返回,仅检查Response的HEAD是不是200。相对来说,更快,而且更简单 
        server node1  192.168.32.31:80 check inter 2s minconn 64 maxconn 2048 slowstart 10s weight 100 
        server node2  192.168.32.32:80 check inter 2s minconn 64 maxconn 2048 slowstart 10s weight 100 
        #服务器定义/ip/check inter启用健康检查,检测心跳频率/minconn最小连接数/maxconn最大连接数/slowstart至全速缓冲时间/weight 

backend html_backend 
        mode http 
        fullconn 4096 
        balance roundrobin 
        cookie SERVERID       #允许插入serverid到cookie中,serverid后面可以定义 
        option  httpchk HEAD /check.html HTTP/1.0 
        server node2  192.168.32.32:80 cookie 2 check inter 2s rise 3 fall 3 weight 100 
        server node3  192.168.32.33:80 cookie 3 check inter 2s rise 3 fall 3 weight 100 
        #服务器定义,cookie 1表示serverid为1,check inter 2s 是检测心跳频率 
        #rise 3是3次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重

 

posted @ 2017-12-05 09:59  天王星天  阅读(2559)  评论(0编辑  收藏  举报