1. 程式人生 > 其它 >一、HAProxy概述

一、HAProxy概述

1.1 HAProxy簡介
• 它是免費、快速並且可靠的一種解決方案
• 適用於那些負載特大的web站點,這些站點通常又需要會話保持或七層處理
• 提供高可用性、負載均衡以及基於TCP和HTTP應用的代理
1.2 衡量負責均衡器效能的因素
• Session rate 會話率
– 每秒鐘產生的會話數
• Session concurrency 併發會話數
– 伺服器處理會話的時間越長,併發會話數越多
• Data rate 資料速率
– 以MB/s或Mbps衡量
– 大的物件導致併發會話數增加
– 高會話數、高資料速率要求更多的記憶體
1.3 HAProxy工作模式
• mode http
– 客戶端請求被深度分析後再發往伺服器
• mode tcp
– 客戶端與伺服器之間建立會話,不檢查第七層資訊
• mode health
– 僅做健康狀態檢查,已經不建議使用
1.4 HTTP協議解析
• 當HAProxy執行在HTTP模式下,HTTP請求
(Request)和響應(Response)均被完全分析和索引,這樣便於建立恰當的匹配規則
• 理解HTTP請求和響應,對於更好的建立匹配規則至關重要
HTTP事務模型
• HTTP協議是事務驅動的
• 每個請求(Request)僅能對應一個響應(Response)
• 常見模型:
– HTTP close
– Keep-alive
– Pipelining
• HTTP close
– 客戶端向伺服器建立一個TCP連線
– 客戶端傳送請求給伺服器
– 伺服器響應客戶端請求後即斷開連線
– 如果客戶端到伺服器的請求不只一個,那麼就要不斷的去建立連線
– TCP三次握手消耗相對較大的系統資源,同時延遲較大
• Keep-alive
– 一次連線可以傳輸多個請求
– 客戶端需要知道傳輸內容的長度,以避免無限期的等待傳輸結束
– 降低兩個HTTP事務間的延遲
– 需要相對較少的伺服器資源
• Pipelining
– 仍然使用Keep-alive
– 在傳送後續請求前,不用等前面的請求已經得到迴應
– 適用於有大量圖片的頁面
– 降低了多次請求之間的網路延遲
1.5 HTTP頭部資訊
• 請求頭部資訊
– 方法:GET
– URI:/serv/login.php?lang=en&profile=2
– 版本:HTTP/1.1

• 請求頭部資訊

– 請求頭包含許多有關的客戶端環境和請求正文的有用資訊,如瀏覽器所使用的語言、請求正文的長度等

• 響應頭部資訊
– 版本:HTTP/1.1
– 狀態碼:200
– 原因:OK

• 新浪頁面例項