HAProxy的日志配置以及ACL规则实现负载均衡
HAProxy配置日志策略
默认情况下,HAProxy是没有配置日志的
在centos6.3下默认管理日志的是rsyslog,可以实现UDP日志的接收,将日志写入文件,写入数据库
先检测rsyslog是否安装
rpm -q rsyslog
安后在/etc/rsyslog.d/下创建haproxy.conf,内容如下:
$ModLOad imudp
$UDPServerRun
local3.* /usr/local/haproxy/logs/haproxy.log
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段中,语法如下
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后端
例如:
acl www_policy hdr_reg(host) -i ^(www.z.cn|z.cn)
acl bbs_policy hdr_dom(host) -i bbs.z.cn
acl url_sub url_sub(host) -i buy_sid= use_backend server_www if www_policy
use_backend server_bbs if bbs_policy
use_backend server_app if url_policy
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的后端
acl url_static path_end .gif .png .jgp .js
acl host_www hdr_beg(host) -i www
acl host_statuc hdr_beg(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
本实例也是定义了三个ACL规则,其中第一条规则通过psth_end参数定义了如果客户端在请求的URL中以.gif,.png,.jgp,.js结尾时返回true
第二条说如果以www开头的域名发送请求时返回true,同理第三条
第四五条规则定义了满足当前规则的时候调度到哪个后端的backend
HAProxy的日志配置以及ACL规则实现负载均衡的更多相关文章
- linux下配置tomcat集群的负载均衡
linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...
- 关于haproxy的一些属性和acl 规则
首先是haproxy.cfg文件的基本标注 当然实际配件没有下面这个复杂,可以根据需要自行增减. global log 127.0.0.1 local1 maxconn 65000 #最大连接数 ch ...
- 配置LVS + Keepalived高可用负载均衡集群之图文教程
负载均衡系统可以选用LVS方案,而为避免Director Server单点故障引起系统崩溃,我们可以选用LVS+Keepalived组合保证高可用性. 重点:每个节点时间都同步哈! C++代码 [r ...
- MySQL架构之keepalived+haproxy+mysql 实现MHA中slave集群负载均衡的高可用(原创)
MySQL的高可用方案一般有如下几种:keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. HAProxy是一款 ...
- 配置nginx到后端服务器负载均衡
nginx和haproxy一样也可以做前端请求分发实现负载均衡效果,比如一个tomcat服务如果并发过高会导致处理很慢,新来的请求就会排队,到一定程度时请求就可能会返回错误或者拒绝服务,所以通过负载均 ...
- 配置一个nginx反向代理&负载均衡服务器
一.基本信息 系统(L):CentOS 6.9 #下载地址:http://mirrors.sohu.com 反代&负载均衡(N):NGINX 1.14.0 #下载地址:http://nginx ...
- Windows下nginx配置多台服务器做负载均衡
Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3 ...
- Nginx 笔记(三)nginx 配置实例 - 反向代理、负载均衡、动静分离
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.反向代理 反向代理准备工作: (1)在 liunx 系统安装 tomcat,使用默认端口 8080 ...
- kong配置upstream实现简单的负载均衡
目录 通过konga实现 1. 配置upstream 2. 配置Service发布 3. 配置Route,匹配规则 4. 验证结果 通过 Kong Admin API实现 1. 配置upstream ...
随机推荐
- Asp.net 面向接口可扩展框架之业务规则引擎扩展组件
随着面向接口可扩展框架的继续开发,有些功能开发出现了"瓶颈",有太多的东西要写死才好做.但写死的代码扩展性是非常的不好,迷茫中寻找出入... 进而想到我以前开发的好几个项目,都已有 ...
- enote笔记语言(2)
why not(whyn't) 为什么不(与“why”相对应,是它的反面) how对策 how设计 key-memo ...
- Linux应用程序基础
文件位置: 系统命令:/bin和sbin目录,或shell内部指令: 应用程序:/usr/bin和/usr/sbin目录. /usr/bin:普通执行程序文件: ...
- pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页
java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...
- push方法的兼容性问题
在IE8及以下中,不支持aplly方法中的第二个参数是 伪数组 需要对push方法进行封装. 将 push 的判断,放入一个沙箱中: 好处:在页面加载的时候就会执行这段代码,保证了代码只会检测一次 以 ...
- 谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo
前言 前端已经过了单兵作战的时代了,现在一个稍微复杂一点的项目都需要几个人协同开发,一个战略级别的APP的话分工会更细,比如携程: 携程app = 机票频道 + 酒店频道 + 旅游频道 + ..... ...
- Xcode自定义代码块
到现在才发现原来Xcode有自定义代码块这么神奇的功能,能简化很多无聊的敲重复代码的工作,真是感叹我怎么才知道!!! 具体的设置流程见:http://nshipster.cn/xcode-snippe ...
- Newtonsoft.Json 自定义 解析协议
在开发web api的时候 遇到一个要把string未赋值默认为null的情况改成默认为空字符串的需求 这种情况就需要自定义json序列话的 解析协议了 Newtonsoft.Json默认的解析协议是 ...
- Android中使用ListView实现分页刷新(线程休眠模拟)
当要显示的数据过多时,为了更好的提升用户感知,在很多APP中都会使用分页刷新显示,比如浏览新闻,向下滑动到当前ListView的最后一条信息(item)时,会提示刷新加载,然后加载更新后的内容.此过程 ...
- OC字符串基本操作
不可变的字符串的修改方法有返回值(重新指向新的字符串地址) 可变的字符串的修改方法没有返回值(修改字符串本身) // NSString 不可变字符串 // 1.创建字符串对象 // 使用初始化方法创建 ...