Haproxy实现反向代理及负载均衡

Haproxy实现反向代理及负载均衡

文章目录

1.Haproxy介绍

HaProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件。在七层负载均衡方面的功能很强大(支持cookie track, header rewrite等等),支持双机热备,支持虚拟主机,支持健康检查,同时还提供直观的监控页面,可以清晰的监控服务集群的运行状况

2. Haproxy的配置

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

  • 命令行参数,这是最优先的

  • global (全局)段,设置进程级参数;

  • 代理配置段,通常位于default,listen,backend这样的形式内。

配置文件的语法是由关键字后跟可选的一个或者多个参数(参数之间有空格)组成。如果字符串中包含空格,必须用\进行转义.

Haproxy配置段中分五大部分:

  • global:全局参数配置,进程级的,用来控制Haproxy启动前的一些进程及系统设置

  • defaults:配置些默认的参数,可以被frontend,backend, listen段集成使用

  • frontend :用来匹配接收客户所请求的域名、uri等,并针对不同的匹配做不同的请求处理

  • backend:定义后端服务器集群,以及对后端服务器集群的一些权重、队列、连接数等选项的设置,类似于nginx中的upstream模块

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

3.实现反向代理及负载均衡

实验环境:
server1---haproxy
server2---服务端
server3---服务端

server1:

step1 配置haproxy:

yum install haproxy -y
cd /etc/haproxy
ls
vim 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.254.2:80 check       #后端
 96         server web2 172.25.254.3:80 check

Haproxy实现反向代理及负载均衡
step2 启动haproxy:

systemctl start haproxy	#启动haproxy
netstat -antlp

Haproxy实现反向代理及负载均衡

在server2和server3中:

配置后端http:

yum install httpd -y
cd /var/www/html/
vim index.html
systemctl start httpd

Haproxy实现反向代理及负载均衡
Haproxy实现反向代理及负载均衡

测试:

访问172.25.254.1:8080/status---输入用户名admin和密码westos---看到监控页面
curl 172.25.254.1	#看到server2和server3轮询的情况

Haproxy实现反向代理及负载均衡
Haproxy实现反向代理及负载均衡
Haproxy实现反向代理及负载均衡
Haproxy实现反向代理及负载均衡
关闭server2的http:

systemctl stop httpd

再次测试:

curl 172.25.254.1	#只有server3
在172.25.254.1:8080/status监控页面可以看到server2 down的信息

Haproxy实现反向代理及负载均衡

Haproxy实现反向代理及负载均衡

上一篇:Spring Cloud源码实践-工程搭建


下一篇:Python之旅的第13天(功能的练习)