1.Haproxy简介
Haproxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。Haproxy运行在当前的硬件上,
完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,
同时可以保护你的web服务器不被暴露到网络上。
2.HTTP请求
两种方式:GET方式和POST方式
返回状态码:正常状态码:2xx ,3xx(200,301)
异常状态码:4xx ,5xx(400,500)
3.常用负载均衡调度算法
RR:轮询调度
LC:最少连接数
SH:基于源的访问调度
4、haproxy的配置文件:haproxy.cfg
配置日志请查看最后
Globa(全局段)global:参数是进程级的,通常和操作系统(OS)相关。这些参数一般只设置一次,如果配置无误,就不需要再次配置进行修改;
defaults(默认段)default:配置默认参数的,这些参数可以被利用配置到frontend,backend,listen组件
listen(应用组件设置)Frontend和Backend的组合体
5.Haproxy配置安装
依赖包pcre* bzip2*
[root@localhost]# yum -y install pcre* bzip2*
[root@localhost]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src/
[root@localhost]# cd /usr/src/haproxy-1.5.19/
配置安装
[root@localhost haproxy-1.5.19]# make TARGET=linux26 PREFIX=/usr/local/haproxy //prefix =安装目录 TARGET:指定linux内核版本,通过:uname -a 26=64位操作系统
[root@localhost haproxy-1.5.19]# make install PREFIX=/usr/local/haproxy
创建配置目录及文件
[root@localhost]# mkdir /etc/haproxy //创建配置文件目录
[root@localhost]# cp examples/haproxy.cfg /etc/haproxy/ //将haproxy.cfg文件复制到配置文件目录
复制启动脚本
[root@localhost haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy //创建自启动脚本
[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy //授予执行权限
[root@localhost haproxy-1.5.19]# chkconfig --add /etc/init.d/haproxy //添加为系统服务
创建软连接
[root@localhost haproxy-1.5.19]# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/
创建Haproxy需要的目录
[root@localhost haproxy-1.5.19]# mkdir -p /usr/share/haproxy
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy/errors
[root@localhost haproxy-1.5.19]# cp examples/errorfiles/* /etc/haproxy/errors/
启动Haproxy服务
[root@localhost]# /etc/init.d/haproxy start
Starting haproxy (via systemctl): [ 确定 ]
启动成功!!!
配置haproxy的主配置文件
[root@localhost]# vim /etc/haproxy/haproxy.cfg
// 后是详细解释
#this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0 //配置日志记录,local0为日志设备,默认存放到系统日志
log 127.0.0.1 local1 notice //notice为日志级别,通常有24个级别
#log loghost local0 info
maxconn 4096 //最大连接数
chroot /usr/share/haproxy
uid 99 //用户uid
gid 99 //用户gid
daemon
#debug
#quiet
defaults
log global //定义日志为global配置日志定义
mode http //模式为http
option httplog //采用http日志格式记录日志
retries 3 //检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
redispatch //当服务器负载很高时,自动结束当前队列处理比较久的连接
maxconn 2000 //最大连接数
contimeout 5000 //连接超时时间
clitimeout 50000 //客户端超时时间
srvtimeout 50000 //服务器超时时间
listen appli4-backup 0.0.0.0:10004 //定义一个appli4-backup的应用
option httpchk /index.html //检查服务器的index.html文件
option persist //强制将请求发送到已经down掉的服务器
balance roundrobin //负载均衡调度算法使用轮询算法
server inst1 192.168.114.56:80 check inter 2000 fall 3 //定义在线节点
server inst2 192.168.114.56:81 check inter 2000 fall 3 backup //定义备份节点
在结尾后可加入
listen web 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server inst1 192.168.3.11:80 check inter 2000 fall 3
server inst1 192.168.3.12:80 check inter 2000 fall 3
查看测试结果
搭建完成!!!
Haproxy日志配置
Haproxy的日志默认输出到系统的syslog中,查看起来不是非常方便,为了功耗管理Haproxy的日志,我们在生产环境中一般单独定义出来
1.修改Haproxy主配置文件haproxy.cfg
将global全局配置中的
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
修改为:
log /dev/log local0 info
log /dev/log local0 notice
重启Haproxy,完成配置
2.修改rsyslog配置
touch /etc/rsyslog.d/haproxy.conf
vim /etc/rsyslog.d/haproxy.conf
加入下面内容
if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log
& ~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log
& ~
保存重启完成配置rsyslog配置
查看文件
收到请求日志信息完成配置!!!