003.HAProxy ACL規則的智慧負載均衡
阿新 • • 發佈:2018-12-23
一 簡介
HAProxy可以工作在第七層模型,可通過ACL規則實現基於HAProxy的智慧負載均衡系統,HAProxy通過ACL規則完成以下兩種主要功能:- 通過ACL規則檢查客戶端請求是否合法,如果符合ACL規則,則放行;不符合ACL規則,則中斷請求;
- 符合ACL規則的請求被提交到後端伺服器叢集,進而實現基於ACL規則的負載均衡。
二 使用方法
2.1 語法
通常ACL規則在frontend部分使用,語法如下: acl 自定義acl名稱 acl方法 -i [匹配的路徑或檔案] 選項含義: acl:一個關鍵字,表示定義acl規則的開始,後面需要帶上自定義的acl名稱;2.2 舉例
acl www_policy hdr_reg(host) -i ^(www.z.cn|z.cn) acl bbs_policy hdr_dom(host) -i bbs.z.cn-
第一條:表示如果客戶端以www.z.cn或z.cn開頭的域名傳送請求,則此規則返回true;
- 第二條:表示如果客戶端以bbs.z.cn開頭的域名傳送請求,則此規則返回true;
- 第三條:表示如果客戶端在請求的RUL中包含“buy_sid=”字串,則此規則返回true。
- 第4-6條規則定義了當www_policy、bbs_policy、url_policy三個ACL規則返回true時需要排程到哪個後端。
- 第四條:當用戶的請求滿足www_policy時,HAProxy會將使用者請求直接發往名為server_www的後端;
- 以此類推,當用戶的請求不滿足任何一條ACL規則時,HAProxy會把請求發往由default_backend選項指定的server_cache後端。
2.3 舉例2
acl url_static path_end .gif .png .jpg .css .js acl host_www hdr_deg(host) -i www acl host_static hdr_deg(host) -i img. video. download. ftp. use_backend static if host_static || host_www url_static use_backend www if host_www default_backend server_cache 解釋:定義了url_static、host_www、host_static三個ACL規則。- 第一條:表示如果客戶端在請求的URL中以.gif或.png或.jpg或.css或.js結尾,則此規則返回true;
- 第二條:表示如果客戶端以www開頭的域名傳送請求,則此規則返回true;
- 第三條:表示如果客戶端在請求的URL中以img.或video.或download.或ftp.結尾,則此規則返回true;
- 第4-6條規則定義了當www_policy、bbs_policy、url_policy三個ACL規則返回true時需要排程到哪個後端。
- 第四條:如使用者的請求同時滿足host_static+url_static規則或滿足host_www+url_static規則,HAProxy會把請求直接發往名為static的後端。
- 以此類推,當用戶的請求不滿足任何一條ACL規則時,HAProxy會把請求發往由default_backend選項指定的server_cache後端。