HAProxy的日志配置以及ACL规则实现负载均衡
HAProxy配置日志策略
默認情況下,HAProxy是沒有配置日志的
在centos6.3下默認管理日志的是rsyslog,可以實現UDP日志的接收,將日志寫入文件,寫入數據庫
先檢測rsyslog是否安裝
rpm -q rsyslog
安后在/etc/rsyslog.d/下創建haproxy.conf,內容如下:
說明下:
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后端
例如:
這里只是列出了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的后端
本實例也是定義了三個ACL規則,其中第一條規則通過psth_end參數定義了如果客戶端在請求的URL中以.gif,.png,.jgp,.js結尾時返回true
第二條說如果以www開頭的域名發送請求時返回true,同理第三條
第四五條規則定義了滿足當前規則的時候調度到哪個后端的backend
?
轉載于:https://www.cnblogs.com/Dicky-Zhang/p/6248872.html
總結
以上是生活随笔為你收集整理的HAProxy的日志配置以及ACL规则实现负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 显示当前行号、文件名和函数名(二)
- 下一篇: oracle数据导入sqlldr小例子