Haproxy---搭建Web集群部署

一,Haproxy 介绍
1,常见的Web集群调度器
在这里插入图片描述
2,Haproxy 应用
HAProxy 是一款基于TCP和HTTP应用的具备高可用行且负载均衡的代理软件。HAProxy是完全免费的,借助HAProxy可以快速、可靠地提供基于TCP和HTTP应用的代理解决方案。HAProxy最主要的特点是性能优越,特别使用与负载超重的Web站点,这些站点通常需要会话保持或七层处理。HAProxy完全可以支持数以万计的并发连接。并且HAProxy的运行模式使其可以简单、安全的将信息整合进当前的架构中,同时保护后面的Web服务器不被暴露。
3,Haproxy调度算法原理
Haproxy---搭建Web集群部署_第1张图片
4,LVS 和Nginx,Haproxy区别
LVS
1、抗负载能力强、工作在第4层仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;无流量,同时保证了均衡器IO的性能不会受到大流量的影响;
2、工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat;
3、应用范围比较广,可以对所有应用做负载均衡

Nginx
1.工作在OSI第7层,可以针对http应用做一些分流的策略。比如针对域名、目录结构。它的正则比HAProxy更为强大和灵活;
2.Nginx对网络的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势所在;
3.Nginx安装和配置比较简单,测试起来比较方便;
4.可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;

HAProxy
1、HAProxy是支持虚拟主机的,可以工作在4、7层(支持多网段);
2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作;
3、支持url检测后端的服务器;
4、它跟LVS一样,本身仅仅就只是一款负载均衡软件;单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度,在并发处理上也是优于nginx。

VS: 是基于四层的转发
HAproxy: 是基于四层和七层的转发,是专业的代理服务器
Nginx: 是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发
区别: LVS由于是基于四层的转发所以只能做端口的转发
而基于URL的、基于目录的这种转发LVS就做不了

二,实验
搭载
Haproxy ; 192.168.35.40
web1; 192.168.35.10
web2; 192.168.35.20
win10; 192.168.10.100

安装Haproxy
①三台服务器同步阿里云服务器

ntpdate ntp2.aliyun.com 

②安装组件

yum install -y pcre-devel bzip2-devel gcc gcc-c++ make
1

③上传软件包至/opt目录,解压

cd /opt
tar zxvf haproxy-1.5.19.tar.gz

④make编译安装

cd haproxy-1.5.19/
make TARGET=linux2628 ARCH=x86_64
make install

Haproxy---搭建Web集群部署_第2张图片
Haproxy---搭建Web集群部署_第3张图片

#4~5行–修改,配置日志记录,local0为日志设备,默认存放到系统日志
log /dev/log   local0 info		
log /dev/log   local0 notice
#log loghost    local0 info
maxconn 4096					#最大连接数,需考虑ulimit -n限制
#8行–注释,chroot(改变根目录),为该服务自设置的根目录,一般需将此行注释掉
#chroot /usr/share/haproxy
uid 99   #用户UID
gid 99   #用户GID
daemon	 #守护进程模式
defaults        
log     global   #定义日志为global配置中的日志定义
mode    http   #模式为http
option  httplog   #采用http日志格式记录日志
option  dontlognull	   #不记录健康检查日志信息
retries 3	    #检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
redispatch	     #当服务器负载很高时,自动结束当前队列处理比较久的连接
maxconn 2000   #最大连接数
contimeout      5000	     #连接超时时间
clitimeout      50000	   #客户端超时时间
srvtimeout      50000	    #服务器超时时间
#27行之后全部删除,复制以下内容
 listen  webcluster 0.0.0.0:80    # 监听web服务集群
 option httpchk GET /test.html   #检查服务器的test.html文件
 balance roundrobin      #负载均衡调度算法使用轮询算法roundrobin
server inst1 192.168.35.10:80 check inter 2000 fall 3       #定义在线节点
 server inst2 192.168.35.20:80 check inter 2000 fall 3
balance roundrobin	 #负载均衡调度算法
轮询算法:roundrobin;
最小连接数算法:leastconn;
来源访问调度算法:source hashing,
类似于nginx的ip_hash
check inter 2000   #表示haproxy服务器和节点之间的一个心跳频率
fall 3   #表示连续三次检测不到心跳频率则认为该节点失效

Haproxy---搭建Web集群部署_第4张图片
启动Haproxy 服务

[root@hapory haproxy-1.5.19]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@hapory haproxy-1.5.19]# cd /etc/init.d/
[root@hapory init.d]# chmod +x haproxy
[root@hapory init.d]# chkconfig --add /etc/init.d/haproxy
[root@hapory init.d]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@hapory haproxy]# service haproxy start

在win10 测试
Haproxy---搭建Web集群部署_第5张图片
Haproxy---搭建Web集群部署_第6张图片
三、Haproxy 日志管理
修改Haproxy配置文件中关于日志配置的选项,加入配置

log /dev/1oq loac10 info
log /dev/ log 1oca10 notice

修改rsyslog配置,将haproxy相关配置独立定义到haproxy.conf, 并放到/etc/rsyslog.d/下
保存配置文件并重启rsyslog服务,完成rsyslog配置

四、Haproxy参数优化
随着企业网站负载增加,haproxy参数优化相当重要,具体的优化项如下:
1.maxconn: 最大连接数,根据应用实际情况进行调整,推荐使用10 240
2.daemon: 守护进程模式;Haproxy可以使用非守护进程模式启动,建议使用守护进程模式启动
3.nbproc:负载均衡的并发进程数,建议与当前服务器CPU核数相等或为其2倍
4.retries: 重试次数,主要用于对集群节点的检查,如果节点多,且并发量大,设置为2次或3次
5.option http-server-close: 主动关闭http请求选项, 建议在生产环境中使用此选项
6.timeouthttp-keep-alive:长连接超时时间,设置长连接超时时间,可以设置为10s
7.Limeoul http-requesL: hLLp请求超时时问,建议将此时问设置为5-~10s, 增加http连接释放速度
8.timcout. clicnt: 客户端超时时间,如果访问量过大,节点响应慢,可以将此时间设置短一 些,建议设置为1min左右就可以了

你可能感兴趣的:(haproxy)