天天看點

haproxy的配置檔案詳解

Haproxy是目前比較流行的一種群集排程工具,同類群集排程工具有很多,如LVS和Nginx。相比較而言,LVS性能最好,但是搭建相對複雜,Nginx的upstream子產品支援群集功能,但是相對群集節點健康檢查功能不強,性能沒有Haproxy好,更多的是應用在企業内網環境中。

HAProxy雖然名字前有HA,但它并不是一款高可用軟體,而是一款用于實作負載均衡的軟體,可實作四層與七層的負載均衡。

上述幾個web群集排程器屬于軟體類型的,還有很多硬體群集排程器,硬體一般使用比較多的是F5,也有很多公司使用國産的一些産品,如梭子魚、綠盟等。硬體群集排程器有一些比較顯而易見的缺點,如果說出問題了,還要需要廠家的技術支援,廠家維護時還需要我們的錯誤日志,在出現問題到問題解決這段時間,可能一個月的時間都過去了。若是使用軟體型的群集排程器,那麼隻要我們運維人員技術過硬,發現問題到解決問題,很快的。

關于haproxy的常用排程算法,可以參考博文:Haproxy支援的排程算法。

haproxy的詳細配置過程和配置日志記錄,可以參考博文:keepalived+Haproxy搭建高可用Web群集。

這篇博文不談如何配置haproxy,主要來聊一下它的配置檔案說明以及生産環境中的參數調優。

haproxy的配置檔案通常分為三個部分:global、defaults和listen。依次為全局配置、默

認配置、應用元件配置。

global配置:

global        log 127.0.0.1   local   #配置日志記錄,local0為日志裝置,預設存放到系統日志
        log 127.0.0.1   local1 notice  #notice為日志級别,通常有24個級别
        #log loghost    local0 info
        maxconn 4096             #最大連接配接數
        chroot /usr/share/haproxy         #該服務自設定的根目錄,一般需将此行注釋掉
        uid 99         #使用者UID
        gid 99        #使用者GID
        daemon        #守護程序模式      

defaults配置項配置預設參數,一般會被應用元件繼承,如果在應用元件中沒有特别的聲明,将安裝預設配置參數:

defaults        log     global               #定義日志為global配置中的日志定義
        mode    http                 #模式為http
        option  httplog              #采用http日志格式記錄日志
        option  dontlognull
        retries 3         #檢查節點伺服器失敗次數,連續達到三次失敗,則認為節點不可用
        redispatch             #當伺服器負載很高時,自動結束目前隊列處理比較久的連接配接
        maxconn 2000                      #最大連接配接數
        contimeout      5000              #連接配接逾時時間
        clitimeout      50000             #用戶端逾時時間
        srvtimeout      50000             #伺服器逾時時間      
listen  appli4-backup 0.0.0.0:10004           #定義一個名為appli4-backup的應用
                option  httpchk /index.html        #檢查伺服器的index.html檔案
                option  persist     #強制将請求發送到已經down掉的伺服器,一般禁用此選項。
                balance roundrobin        #負載均衡排程算法使用輪詢算法
            server  inst1 192.168.114.56:80 check inter 2000 fall 3     #定義線上節點
         server  inst2 192.168.114.56:81 check inter 2000 fall 3 backup #定義備份節點#注意:在以上定義備份節點的參數中,#“check inter 2000”表示haproxy伺服器和節點之間的一個心跳頻率,#“fall 3”表示連續三次檢測不到心跳頻率則認為該節點失效。#節點配置後帶有“ backup”表示該節點隻是個備份節點,隻有主節點失效該節點才會上。#去除backup,表示為主節點,和其他主節點共同提供服務。      

繼續閱讀