Haproxy简介 以及 负载均衡的实现

一、Haproxy介绍

HAProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件。实现了一种事件驱动,单一进程模型,支持非常大的并发连接,是因为事件驱动模型有更好的资源和时间管理的用户端(user-space)实现这些业务

  • 7层负载均衡方面的功能很强大(支持cookie track, header rewrite等等)
  • 支持双机热备
  • 支持虚拟主机
  • 支持健康检查
  • 同时还提供直观的监控页面,可以清晰实时的监控服务集群的运行状况。
  • 同时支持Linux 2.6内核中System Epoll,通过简化系统调用,大幅的提高了网络I/O性能。

二、HAProxy配置

HAProxy的配置过程分为3个主要部分:

  1. 命令行参数,这是最优先的;
  2. global(全局)段,设置进程级参数;
  3. 代理配置段,通常位于default,listen,backend这样的形式内。
  4. 配置文件的语法是由关键字后跟可选的一个或者多个参数(参数之间有空格)组成。如果字符串中包含空格,必须用’\’进行转义。

HAProxy配置中分五大部分:

  1. global:全局配置参数,进程级的,用来控制Haproxy启动前的一些进程及系统设置
  2. defaults:配置一些默认的参数,可以被frontend,backend,listen段继承使用
  3. frontend:用来匹配接收客户所请求的域名,uri等,并针对不同的匹配,做不同的请求处理
  4. backend:定义后端服务器集群,以及对后端服务器的一些权重、队列、连接数等选项的设置,我将其理解为Nginx中的upstream块
  5. listen:可以理解为frontend和backend的组合体

Haproxy配置文件的配置方法主要有两种,一种是由前端(frontend)和后端(backend)配置块组成,前端和后端都可以有多个。第二种方法是只有一个listen配置块来同时实现前端和后端。最常用也是推荐的方法为第一种,即frontend和backend的模式。

三、使用haproxy实现反向代理和负载均衡

实验准备

此实验需要三台虚拟机:

主机名ip说明
server1172.25.63.1反向代理务服务器
server2172.25.63.2后端服务器(real server)
server3172.25.63.3后端服务器(real server)

同时物理机(ip 172.25.63.250)作为客户端

1.配置反向代理务服务器

安装haproxy

[root@server1 ~]# yum install haproxy -y

修改配置文件:
将不使用的 frontendbackend模块注释掉,并加入listen模块:

[root@server1 ~]# vim /etc/haproxy/haproxy.cfg 

 87 listen admin *:8080
 88         stats enable
 89         stats uri /status       #监控页面地址
 90         stats auth admin:westos #管理帐号和密码
 91         stats refresh 5s        #刷新频率
 92 
 93 listen westos *:80      #监听的实例名称,地址和端口
 94         balance roundrobin      #负载均衡算法
 95         server web1 172.25.63.2:80 check
 96         server web2 172.25.63.3:80 check

[root@server1 ~]# systemctl start haproxy.service		#启动服务

2.配置后端服务器(Apache)

[root@server2 ~]# yum install httpd -y
[root@server2 ~]# cd /var/www/html/
[root@server2 html]# vim index.html
server2					#server3中测试文件内容为server3
[root@server2 html]# systemctl start httpd

server3与server2相同的操作

3.测试

在客户端浏览器访问http://172.25.63.1:8080/status会提示输入密码,输入在配置文件中编辑的管理帐号和密码后即可进入实现后端服务器的管理:
在这里插入图片描述在这里插入图片描述说明haproxy配置成功,接下来测试负载均衡:
在客户端:

[root@foundation63 ~]# curl 172.25.63.1
server2
[root@foundation63 ~]# curl 172.25.63.1
server3
[root@foundation63 ~]# curl 172.25.63.1
server2
[root@foundation63 ~]# curl 172.25.63.1
server3
[root@foundation63 ~]# curl 172.25.63.1
server2

当关闭server2的服务时:

[root@server2 html]# systemctl stop httpd

在这里插入图片描述

[root@foundation63 ~]# curl 172.25.63.1
server3
[root@foundation63 ~]# curl 172.25.63.1
server3

四、为haproxy生成日志文件

[root@server1 ~]# vim /etc/rsyslog.conf 

 15 $ModLoad imudp
 16 $UDPServerRun 514				#打开udp的端口

 55 local2.*                                                /var/log/haproxy		#编辑日志记录策略

[root@server1 ~]# systemctl restart rsyslog.service
[root@server1 ~]# cat /var/log/haproxy				#查看日志文件
Mar  8 15:27:07 localhost haproxy[2167]: 172.25.63.250:38012 [08/Mar/2020:15:27:01.816] admin admin/<STATS> 5311/0/0/0/5311 200 17628 - - LR-- 1/1/0/0/0 0/0 "GET /status HTTP/1.1"

可以看出日志文件已经生成,以后服务的排错就可以参考这个文件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值