HAProxy雖然名字前有HA,但它並非一款高可用軟件,而是一款用於實現負載均衡的軟件,可實現四層與七層的負載均衡。html
關於haproxy的經常使用調度算法,能夠參考博文:Haproxy支持的調度算法。redis
haproxy的詳細配置過程和配置日誌記錄,能夠參考博文:keepalived+Haproxy搭建高可用Web羣集。算法
這篇博文不談如何配置haproxy,主要來聊一下它的配置文件說明以及生產環境中的參數調優。centos
haproxy的配置文件一般分爲三個部分:global、defaults和listen。依次爲全局配置、默服務器
認配置、應用組件配置。app
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配置項配置默認參數,通常會被應用組件繼承,若是在應用組件中沒有特別的聲明,將安裝默認配置參數:ide
defaults log global #定義日誌爲global配置中的日誌定義 mode http #模式爲http option httplog #採用http日誌格式記錄日誌 option dontlognull retries 3 #檢查節點服務器失敗次數,連續達到三次失敗,則認爲節點不可用 redispatch #當服務器負載很高時,自動結束當前隊列處理比較久的鏈接 maxconn 2000 #最大鏈接數 contimeout 5000 #鏈接超時時間 clitimeout 50000 #客戶端超時時間 srvtimeout 50000 #服務器超時時間
listen配置項通常配置應用模塊參數:ui
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,表示爲主節點,和其餘主節點共同提供服務。
haproxy的參數調優:spa