HAProxy集群

HAProxy

它是一种能提供高可用性,负载均衡以及基于TCP和HTTP应用的代理,是免费的,快速并且可靠的一种解决方案。

HAProxy的主要特性有

1、可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲2、美;
3、支持多达8种负载均衡算法,同时也支持会话保持;
4、支持虚机主机功能,从而实现web负载均衡更加灵活;
5、支持连接拒绝、全透明代理等独特的功能;
6、拥有强大的ACL支持,用于访问控制;
7、基于流量的健康评估机制;
8、基于http认证;
9、基于命令行的管理接口;
10、日志分析器,可对日志进行分析。

HAProxy,Nginx,LVS的区别

1、LVS基于Linux操作系统实现软负载均衡,而HAProxy和Nginx是基于第三方应用实现的软负载均衡;
2、LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而HAProxy和Nginx都可以实现4层和7层技术,HAProxy可提供TCP和HTTP应用的负载均衡综合解决方案;
3、LVS因为工作在ISO模型的第四层,其状态监测功能单一,而HAProxy在状态监测方面功能更丰富、强大,可支持端口、URL、脚本等多种状态检测方式;
4、HAProxy功能强大,但整体性能低于4层模式的LVS负载均衡。
5、Nginx主要用于Web服务器或缓存服务器。

HAProxy的负载均衡策略

1、roundrobin:表示简单的轮询。
2、static-rr:表示根据权重。
3、leastconn:表示最少连接者先处理。
4、source:表示根据请求的源IP,类似Nginx的IP_hash机制。
5、ri:表示根据请求的URI。
6、rl_param:表示根据HTTP请求头来锁定每一次HTTP请求。
7、rdp-cookie(name):表示根据据cookie(name)来锁定并哈希每一次TCP请求。

Haproxy搭建Web集群

Haproxy服务器:192.168.226.40
Nginx 服务器1:192.168.226.50
Nginx 服务器2:192.168.226.60
客户端:192.168.80.120

haproxy 服务器部署

1.关闭防火墙,将安装Haproxy所需软件包传到/opt目录下
systemctl stop firewalld
setenforce 0

haproxy-1.5.19.tar.gz

2.编译安装 Haproxy

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

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

make TARGET=linux2628 ARCH=x86_64
make install

3.Haproxy服务器配置
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/

cd /etc/haproxy/
vim haproxy.cfg

		log /dev/log   local0 info		
        log /dev/log   local0 notice
        #log loghost    local0 info
        maxconn 4096	
        #chroot /usr/share/haproxy
        uid 99	
        gid 99
        daemon

–删除下面所有listen项–,添加

listen  webcluster 0.0.0.0:80			#定义一个名为webcluster的应用
        option httpchk GET /index.html	#检查服务器的test.html文件
        balance roundrobin				#负载均衡调度算法使用轮询算法roundrobin
        server inst1 192.168.226.50:80 check inter 2000 fall 3		#定义在线节点
        server inst2 192.168.226.60:80 check inter 2000 fall 3

4.添加haproxy 系统服务

cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
chmod +x haproxy
chkconfig --add /etc/init.d/haproxy

ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
service haproxy start 或 /etc/init.d/haproxy start

节点服务器部署

systemctl stop firewalld
setenforce 0

使用yum源安装nginx
部署yum源

cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
EOF

nginx
启动服务

192.168.226.50
cd /var/share/nginx/html
echo ‘hello world’ > index.html

192.168.226.60
cd /var/share/nginx/html
echo ‘hello linux’ > index.html
在两个节点安装nginx,重新编辑站点页面

测试 Web群集

访问http://192.168.226.40/index.html ,不断刷新浏览器测试负载均衡效果
在这里插入图片描述
在这里插入图片描述

日志定义

#默认haproxy的日志是输出到系统的syslog中,查看起来不是非常方便,为了更好的管理haproxy的日志,我们在生产环境中一般单独定义出来。需要将haproxy的info及notice日志分别记录到不同的日志文件中。
vim /etc/haproxy/haproxy.cfg
global
log /dev/log local0 info
log /dev/log local0 notice

service haproxy restart

#需要修改rsyslog配置,为了便于管理。将haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下,rsyslog启动时会自动加载此目录下的所有配置文件。
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
&~

systemctl restart rsyslog.service
在客户端访问192.168.226.40/index.html
为日志文件产生记录

vim /var/log/haproxy/haproxy-info.log
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值