HAProxy簡單使用

jopen 9年前發布 | 15K 次閱讀 集群/負載均衡 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

HAProxy簡單使用

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

HAProxy簡單使用

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

頁面如下

HAProxy簡單使用

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

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

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!