HAProxy的日誌配置以及ACL規則實現負載均衡

2022-02-01 08:47:50 字數 2406 閱讀 6034

haproxy配置日誌策略

預設情況下,haproxy是沒有配置日誌的

在centos6.3下預設管理日誌的是rsyslog,可以實現udp日誌的接收,將日誌寫入檔案,寫入資料庫

先檢測rsyslog是否安裝

rpm -q rsyslog

安後在/etc/rsyslog.d/下建立haproxy.conf,內容如下:

1

$modload imudp

2 $udpserverrun 514

3 local3.* /usr/local/haproxy/logs/haproxy.log

4 local10.* /usr/local/haproxy/logs/haproxy.log

說明下:

imup是模組名,支援udp協議

第二行准許514埠接收使用udp和tcp協議**過來的日誌,rsyslog預設514埠監聽udp,也可以將上面的內容寫入/etc/rsyslog檔案中

然後修改下/etc/sysconfig/rsyslog檔案,修改為:

syslogd_options='-c 2 -r -m 0'

-r接收遠端日誌

重啟即可 service rsyslog restart

通過haproxy的acl規則實現智慧型負載均衡主要兩個功能

1,通過設定acl規則檢查客戶端請求是否合法,符合acl規則,放行,不符合直接中斷請求.

2,符合acl要求的請求將被提交到後端的backend伺服器集群,進而實現基於acl規則的負載均衡

haproxy的acl規則經常使用在frontend段中,語法如下

1 acl 自定義acl名稱 acl方法 -i [匹配的路徑或者方法]

acl方法,haproxy定義了很多acl方法,經常使用的有hdr_reg(host),hdr_dom(host),hdr_beg(host),url_sub,url_dir,path_beg,path_end

-i表示不區分大小寫,後邊跟上匹配的路徑或檔案或正規表示式

與acl一起使用的引數還有use_backend,usebackend後面需要跟上乙個backend例項名,表示在滿足acl規則後去請求哪個backend例項,與use_backend對應的還有default_backend引數,表示在沒有滿足acl條件的時候預設使用哪個backend後端

例如:

1 acl www_policy hdr_reg(host) -i ^(www.z.cn|z.cn)

2 acl bbs_policy hdr_dom(host) -i bbs.z.cn

3 acl url_sub url_sub(host) -i buy_sid=45

6 use_backend server_www if

www_policy

7 use_backend server_bbs if

bbs_policy

url_policy

9 default_backend server_cache

這裡只是列出了haproxy配置檔案中的acl部分

說明下:

這裡定義了三個acl規則第一條規則表示客戶端以www.z.cn或者z.cn開頭的網域名稱傳送請求的時候則此規則返回true,同理後兩條的意思也這樣

第四第五第六規則定義了三個acl規則返回true 的時候要排程到哪個後端的backend,例如當使用者請求滿足www_policy規則的時候haproxy會將使用者的請求直接發往名為server_www的後端,以此類推

不滿足任何乙個acl規則的時候,直接發往default_backend

第四第五第六規則定義了三個acl規則返回true 的時候要排程到哪個後端的backend,例如當使用者請求滿足www_policy規則的時候haproxy會將使用者的請求直接發往名為server_www的後端

1

acl url_static path_end .gif .png .jgp .js

2 acl host_www hdr_beg(host) -i www

3 acl host_statuc hdr_beg(host) -i img.video.download.ftp.

45 use_backend static

if host_static ||host_www url_static

6 use_backend www if

host_www

7default-backend server_cache

本例項也是定義了三個acl規則,其中第一條規則通過psth_end引數定義了如果客戶端在請求的url中以.gif,.png,.jgp,.js結尾時返回true

第二條說如果以www開頭的網域名稱傳送請求時返回true,同理第三條

第四五條規則定義了滿足當前規則的時候排程到哪個後端的backend

haproxy日誌配置

aproxy配置日誌策略 預設情況下,haproxy是沒有配置日誌的 在centos6.3下預設管理日誌的是rsyslog,可以實現udp日誌的接收,將日誌寫入檔案,寫入資料庫 先檢測rsyslog是否安裝 rpm q rsyslog 安後在 etc rsyslog.d 下建立haproxy.con...

HAProxy的日誌配置策略

預設情況下,haproxy是沒有配置日誌的,在centos7.2 下預設管理日誌的是rsyslog,可以實現udp日誌的接收,將日誌寫入檔案,寫入資料庫 先檢測rsyslog是否安裝 root localhost rpm q rsyslog rsyslog 7.4.7 12.el7.x86 64 安...

HAProxy 日誌輸出及配置

正所謂,沒有軟體敢說沒有bug,人無完人,software is not perfect software。是軟體就可能存在bug,那麼如果出現bug,我們就要分析對我們業務的影響及可能如何避免bug的再現。haproxy也不例外,也可能在特殊場景下出現bug,因此我們就有必要記錄下必要的日誌資訊。...