文章目录
一、HAProxy基础介绍
1. 概述
HAProxy的官方网站是:https://www.haproxy.org/
HAProxy(High Availability Proxy)是一个使用 C 语言编写的自由及开放源代码软件,它为基于TCP和HTTP的应用,提供高可用、负载均衡和代理,支持虚拟主机。HAProxy是一个单线程、事件驱动、非阻塞引擎,结合了一个非常快速的I/O层和一个基于优先级的调度器。
一旦HAProxy启动时,它会做3件事:处理进入的连接;周期性的检查服务器的状态(也就是我们熟知的健康检查);其它的haproxy节点交换信息。
HAProxy特别适用于那些负载特大的 Web站点。运行模式使得它可以很简单安全的整合到当前的架构中,同时可以保护你的web服务器不被暴露到网络上。Haproxy 主要用来做七层负载均衡。
2. 负载均衡的分类
负载均衡就是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁碟驱动器或其它资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。
那么,这种计算机技术的实现方式有多种。大致可以分为以下几种:二层负载均衡、三层负载均衡、四层负载均衡、七层负载均衡,其中最常用的是四层和七层负载均衡。
二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器;七层通过虚拟的URL或主机名接收请求,然后再分配到真实的服务器。
四层负载均衡工作在 OSI 模型的传输层,由于在传输层,只有 TCP/UDP 协议,这两种协议中除了包含源 IP、目标 IP 以外,还包含源端口号及目的端口号。
四层的负载均衡,就是通过发布三层的IP地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,转发至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。四层负载均衡服务器在接受到客户端请求后,以后通过修改数据包的地址信息( IP+端口号 )将流量转发到应用服务器。
七层负载均衡工作在 OSI 模型的应用层,应用层协议较多,常用 HTTP、Radius、DNS 等。七层负载就可以基于这些协议来负载。这些应用层协议中会包含很多有意义的内容。比如同一个 Web 服务器的负载均衡,除了根据 IP 加端口进行负载外,还可根据七层的 URL、浏览器类别、语言来决定是否要进行负载均衡。
七层负载均衡就是在四层的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,举个例子,如果你的Web服务器分成两组,一组是中文语言的,一组是英文语言的,那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。
二、haproxy基础配置
环境说明:RHEL7
主机名 | serverb | server2 | server3 | workstation |
---|---|---|---|---|
IP地址 | 192.168.1.116 | 192.168.1.102 | 192.168.1.103 | 192.168.1.104 |
职能 | 负载均衡,调度器 | RS服务器(RS2) | RS服务器(RS3) | 外部客户端 |
要求 | 安装haproxy | 安装Apache | 安装Apache |
配置RS服务器:
要求在两台RS服务器均安装了Apache服务并设定开机启动;两个节点的网络畅通,可以被同一个网段的主机ping通;为了显示负载到两个不同的节点,分别更改节点的默认发布页面,RS2设定为vm2,RS3设定为vm3,命令:echo vm2 > /var/www/html/index.html。
1. 配置监控
[root@serverb ~]# yum install haprocy -y //安装
[root@serverb ~]# cd /etc/haproxy/
[root@serverb haproxy]# ls
haproxy.cfg
[root@serverb haproxy]# vim haproxy.cfg //编辑配置文件
defaults
stats uri /status //添加监控
frontend main *:80 //修改端口
default_backend app
backend app
balance roundrobin
server app1 192.168.1.103:80 check //设置节点
server app2 192.168.1.102:80 check
[root@serverb haproxy]# systemctl start haproxy
配置负载均衡调度器
(1)在serverb上安装haproxy:yum install haproxy -y
(2)修改haproxy的配置文件,haproxy的默认配置是/etc/haproxy/haproxy.cfg
在修改配置文件之前,首先要搞懂配置文件