共計(jì) 1449 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
這篇文章主要介紹“haproxy 中 ACL 智能負(fù)載均衡怎么實(shí)現(xiàn)”的相關(guān)知識,丸趣 TV 小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“haproxy 中 ACL 智能負(fù)載均衡怎么實(shí)現(xiàn)”文章能幫助大家解決問題。
由于 HAProxy 可以工作在七層模型下,因此,要實(shí)現(xiàn) HAProxy 的強(qiáng)大功能,一定要使用強(qiáng)大靈活的 ACL 規(guī)則,通過 ACL 規(guī)則可以實(shí)現(xiàn)基于 HAProxy 的智能負(fù)載均衡系統(tǒng)。
HAProxy 通過 ACL 規(guī)則完成兩種主要的功能,分別是:
1)通過設(shè)置的 ACL 規(guī)則檢查客戶端請求是否合法。如果符合 ACL 規(guī)則要求,那么就將放行,反正,如果不符合規(guī)則,則直接中斷請求。
2)符合 ACL 規(guī)則要求的請求將被提交到后端的 backend 服務(wù)器集群,進(jìn)而實(shí)現(xiàn)基于 ACL 規(guī)則的負(fù)載均衡。
HAProxy 中的 ACL 規(guī)則經(jīng)常使用在 frontend 段中,使用方法如下:
acl 自定義的 acl 名稱 acl 方法 -i [匹配的路徑或文件]
其中:
acl:是一個(gè)關(guān)鍵字,表示定義 ACL 規(guī)則的開始。后面需要跟上自定義的 ACL 名稱。
acl 方法 : 這個(gè)字段用來定義實(shí)現(xiàn) ACL 的方法,HAProxy 定義了很多 ACL 方法,經(jīng)常使用的方法有 hdr_reg(host)、hdr_dom(host)、hdr_beg(host)、url_sub、url_dir、path_beg、path_end 等。
經(jīng)常使用的方法:
hdr_beg(host) #精確匹配主機(jī), 表示以什么開頭的域名
hdr_reg(host) #正則匹配主機(jī), 表示以什么開頭的域名
path_beg #匹配路徑,表示以什么路徑開頭
path_end #匹配路徑結(jié)尾,表示以什么路徑結(jié)尾
url_sub : 表示請求 url 中包含什么字符串,例如:acl file_req url_sub -i killall=,表示在請求 url 中包含 killall=,則此控制策略返回 true
url_dir : 表示請求 url 中存在哪些字符串作為部分地址路徑,例如 acl dir_req url_dir -i allow,表示在請求 url 中存在 allow 作為部分地址路徑,則此控制策略返回 true, 否則返回 false
-i:表示忽略大小寫,后面需要跟上匹配的路徑或文件或正則表達(dá)式。
與 ACL 規(guī)則一起使用的 HAProxy 參數(shù)還有 use_backend,use_backend 后面需要跟上一個(gè) backend 實(shí)例名,表示在滿足 ACL 規(guī)則后去請求哪個(gè) backend 實(shí)例,與 use_backend 對應(yīng)的還有 default_backend 參數(shù),它表示在沒有滿足 ACL 條件的時(shí)候默認(rèn)使用哪個(gè)后端 backend。
下面列舉幾個(gè)常見的 ACL 規(guī)則例子:
acl www_policy hdr_reg(host) -i ^(www.z.cn|z.cn)
acl bbs_policy hdr_dom(host) -i bbs.z.cn
acl url_policy url_sub -i buy_sid=
use_backend server_www if www_policy
use_backend server_app if url_policy
use_backend server_bbs if bbs_policy
default_backend server_cache
關(guān)于“haproxy 中 ACL 智能負(fù)載均衡怎么實(shí)現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注丸趣 TV 行業(yè)資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點(diǎn)。