HAProxy簡單使用


一、HAProxy簡介及定位

        HAProxy 是一款基於TCP和HTTP應用的具備高可用行且負載均衡的代理軟件。HAProxy是完全免費的,借助HAProxy可以快速、可靠地提供基於TCP和HTTP應用的代理解決方案。HAProxy最主要的特點是性能優越,特別使用與負載超重的Web站點,這些站點通常需要會話保持或七層處理。HAProxy完全可以支持數以萬計的並發連接。並且HAProxy的運行模式使其可以簡單、安全的將信息整合進當前的架構中,同時保護后面的Web服務器不被暴露。

         HAProxy具有反向代理服務器等功能,配置簡單,擁有非常不錯的服務器健康檢查功能。檔期代理的后段服務器出現故障時,HAProxy會自動將該服務器摘除,故障恢復后在自動將其加入。

二、HAProxy與Nginx比較

      同樣具有7層負載功能的Nginx和HaProxy有很多相似的方面,比如都有匹配規則等。如果單純從效率上來講,HAProxy比Nginx有更出色的負載均衡速度,並且在並發處理上也有於Nginx。

      HAProxy不僅能夠彌補Nginx的一些確定,比如Session的保持等工作,並且支持URL檢測對於檢測,后段服務器出現的問題有很好的幫助。

       Nginx對Big Request Header 的支持不是很好,如果 client_header_buffer_size 設置的數值比較小,就會返回400 Bad Request 的錯誤頁面。

三、HAProxy的安裝

使用yum安裝

yum install haproxy.x86_64 –y

安裝完成之后就可以啟動HAProxy服務

/etc/init.d/haproxy start

QQ圖片20151102142454

啟動服務之后我們來修改一下配置文件

QQ截圖20151102142615

global
    #
    #local2                       /var/log/haproxy.log  #日志位置
    #
    log         127.0.0.1 local2 

    chroot      /var/lib/haproxy       
    pidfile     /var/run/haproxy.pid      
    maxconn     4000              #最大連接數                      
    user        haproxy           #用戶名
    group       haproxy           #組
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http                 #模式
    log                     global               #日志
    option                  httplog              
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3                  #重試次數
    timeout http-request    10s                #請求超時時間
    timeout queue           1m
    timeout connect         10s                #連接超時時間 
    timeout client          1m                  #客戶端超時
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000                #最大連接數量
    stats uri                /haproxy_status     #監控頁面地址

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  main *:80   #監聽端口
   # acl url_static       path_beg       -i /static /images /javascript /stylesheets
   # acl url_static       path_end       -i .jpg .gif .png .css .js

   # use_backend static          if url_static
   # default_backend             app
   acl is_zabbix    path_beg /zabbix              #如果請求是以/zabbix結尾則使用zabbix_app這個應用,實現反向代理
   use_backend          zabbix_app  if is_zabbix
   default_backend       tomcat_app

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
#backend static
#    balance     roundrobin
#    server      static 127.0.0.1:4331 check


backend zabbix_app                           #配置后台應用 zabbix_app
    balance roundrobin
    server  app1 127.0.0.1:8083 check




backend tomcat_app                          #配置后台應用 tomcat_app
    balance roundrobin    #負載均衡方式,使用隨機
    server app1 127.0.0.1:8081 check     #服務器1
    server app2 127.0.0.1:8082 check     #服務器2

  
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
    balance     roundrobin
    server  app1 127.0.0.1:8081 check
    server  app2 127.0.0.1:8082 check
    server  app3 127.0.0.1:8083 check

重新加載HAProxy的配置文件

/etc/init.d/harpoxy reload

然后查看是否安裝成功

在地址欄輸入http://192.168.0.65/haproxy_status

頁面如下

QQ截圖20151102144402

能夠看到,我的zabbix_app是正常的,我的tomcat_app沒有啟動,所以是紅色的

在這個頁面能夠清楚的看出HAProxy的訪問量,總流量

如有不足,還請指正,謝謝~!


免責聲明!

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



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