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代表權重

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM