1 global # 全局參數的設置 2 log 127.0.0.1 local2 # log語法:log <address_1>[max_level_1] # 全局的日誌配置,使用log關鍵字, 3 # 指定使用127.0.0.1 4 # 上的syslog服務中的local0日誌設備,記錄日誌等級爲info的日誌 5 chroot /var/lib/haproxy #改變當前工做目錄 6 pidfile /var/run/haproxy.pid #當前進程id文件 7 maxconn 4000 #最大鏈接數 8 user haproxy #所屬用戶 9 group haproxy #所屬組 10 daemon #以守護進程方式運行haproxy 11 stats socket /var/lib/haproxy/stats 12 defaults 13 mode http #默認的模式mode { tcp|http|health },tcp是4層,http是7層,health只會返回OK 14 log global #應用全局的日誌配置 15 option httplog # 啓用日誌記錄HTTP請求,默認haproxy日誌記錄是不記錄HTTP請求日誌 16 17 option dontlognull # 啓用該項,日誌中將不會記錄空鏈接。所謂空鏈接就是在上游的負載均衡器 18 # 或者監控系統爲了探測該 服務是否存活可用時,須要按期的鏈接或者獲取某 19 # 一固定的組件或頁面,或者探測掃描端口是否在監聽或開放等動做被稱爲空鏈接; 20 # 官方文檔中標註,若是該服務上游沒有其餘的負載均衡器的話,建議不要使用 21 # 該參數,由於互聯網上的惡意掃描或其餘動做就不會被記錄下來 22 option http-server-close #每次請求完畢後主動關閉http通道 23 option forwardfor except 127.0.0.0/8 #若是服務器上的應用程序想記錄發起請求的客戶端的IP地址,須要在HAProxy 24 # 上 配置此選項, 這樣 HAProxy會把客戶端的IP信息發送給服務器,在HTTP 25 # 請求中添加"X-Forwarded-For"字段。 啓用 X-Forwarded-For,在requests 26 # 頭部插入客戶端IP發送給後端的server,使後端server獲取到客戶端的真實IP。 27 option redispatch # 當使用了cookie時,haproxy將會將其請求的後端服務器的serverID插入到 28 # cookie中,以保證會話的SESSION持久性;而此時,若是後端的服務器宕掉 29 # 了, 可是客戶端的cookie是不會刷新的,若是設置此參數,將會將客戶的請 30 # 求強制定向到另一個後端server上,以保證服務的正常。 31 retries 3 # 定義鏈接後端服務器的失敗重連次數,鏈接失敗次數超過此值後將會將對應後端 32 # 服務器標記爲不可用 33 timeout http-request 10s #http請求超時時間 34 timeout queue 1m #一個請求在隊列裏的超時時間 35 timeout connect 10s #鏈接超時 36 timeout client 1m #客戶端超時 37 timeout server 1m #服務器端超時 38 timeout http-keep-alive 10s #設置http-keep-alive的超時時間 39 timeout check 10s #檢測超時 40 maxconn 3000 #每一個進程可用的最大鏈接數 41 frontend main *:8081 #監聽地址爲8081 42 stats uri /haproxy #Haproxy 統計頁面 43 acl url_static path_beg -i /static /images /javascript /stylesheets 44 acl url_static path_end -i .jpg .gif .png .css .js 45 use_backend static if url_static 46 default_backend my_webserver #定義一個名爲my_app前端部分。此處將對於的請求轉發給後端 47 backend static #使用了靜態動態分離(若是url_path匹配 .jpg .gif .png .css .js靜態文件則 48 # 訪問此後端) 49 balance roundrobin #負載均衡算法(#banlance roundrobin 輪詢,balance source 保存session值, 50 # 支持static-rr,leastconn,first,uri等參數) 51 server static 220.181.111.37:80 check #靜態文件部署在本機(也能夠部署在其餘機器或者squid緩存服務器) 52 backend my_webserver #定義一個名爲my_webserver後端部分。PS:此處my_webserver只是一個 53 # 自定義名字而已,可是須要與frontend裏面配置項default_backend 值相一致 54 balance roundrobin #負載均衡算法 55 server web01 127.0.0.1:8088 check inter 2000 fall 3 weight 30 #定義的多個後端56 server web03 192.168.92.131:80 check inter 2000 fall 3 weight 30 #定義的多個後端