haproxy七层代理

1.简介:

 HAProxy是一款开源、高性能的负载均衡器和代理服务器,专为TCP和HTTP应用而设计。它可以将客户端的请求分发到多台后端服务器,从而提高应用的可用性和性能。HAProxy支持多种负载均衡算法和健康检查机制,是构建高可用性系统的理想选择。

HAProxy的整体架构主要包括以下部分:

前端(Frontend):接受客户端请求,并根据配置的规则进行处理。
后端(Backend):定义一组服务器,处理前端转发的请求。
服务器(Server):实际处理请求的后端服务器。
监听器(Listener):在前端监听特定的IP和端口,等待客户端的连接请求。

HAProxy的优势:

高性能:HAProxy采用事件驱动模型,能够处理大量并发连接。
灵活性强:支持多种负载均衡算法和调度策略,适应不同的应用场景。
高可用性:通过健康检查和故障转移机制,确保服务的连续性。
丰富的功能:支持SSL终止、HTTP重写、压缩等多种功能。

2.负载均衡

Load balancing,即负载均衡,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。

负载均衡技术具有一下优势

(1)高性能:负载均衡技术将业务较均衡的分担到多台设备或链路上,从而提高了整个系统的性能;

(2)可扩展性:负载均衡技术可以方便的增加集群中设备或链路的数量,在不降低业务质量的前提下满足不断增长的业务需求;

(3)高可靠性:单个甚至多个设备或链路法神故障也不会导致业务中断,提高了整个系统的可靠性;

(4)可管理性:大量的管理共组都集中在使用负载均衡技术的设备上,设备集群或链路集群只需要维护通过的配置即可;

(5)透明性:对用户而言,集群等于一个或多个高可靠性、高性能的设备或链路,用户感知不到,也不关心具体的网络结构,增加或减少设备或链路数量都不会影响正常的业务。

HAProxy常用命令

启动HAProxy:systemctl start haproxy

停止HAProxy:systemctl stop haproxy

重启HAProxy:systemctl restart haproxy

查看HAProxy状态:systemctl status haproxy

检查HAProxy配置文件:haproxy -c -f /etc/haproxy/haproxy.

重新加载HAProxy配置:systemctl reload haproxy

3.haproxy的基本配置信息

rpm -qc haproxy        ###查找haproxy的路径

配置文件路径:/etc/haproxy/haproxy.cfg

global: 全局配置段

- 进程以及安全配置相关参数

- 性能调整相关参数

- Debug参数

proxies:代理配置段

- defaults:为frontend,backend,listen提供默认配置

- frontend:前端,相当于nginx中的server{}

- backend:后端,相当于nginx中的upstream{}

- listen:同时拥有前端和后端配置,配置简单,生产推荐使用

实验环境:(nginx)

三台虚拟机

haproxy

dnf install haproxy -y

修改配置文件后都需要重启服务

systemctl restart haproxy.service

webserver1

dnf install nginx -y        ###下载nginx

echo webserver1 - 172.25.254.10 > /usr/share/nginx/html/index.html

webserver2

dnf install nginx -y

echo webserver2 - 172.25.254.20 > /usr/share/nginx/html/index.html

多进程防止cpu飘逸问题

cpu-map 1 0:进程1使用第一个进程

cpu-map 2 1:进程2使用第二个进程

4.常用参数:

5.动态调整haproxy

(解决改动配置,全局都会受影响)

对该文件进行配置:(因为只能查看不能修改,需要提权

以管理员身份提权 600

dnf install socat -y        (动态调整haproxy的参数)

多进程热处理

6.算法

1 静态算法

静态算法:按照事先定义好的规则轮询公平调度,不关心后端服务器的当前负载、连接数和响应速度等,且无法实时修改权重(只能为0和1,不支持其它值),只能靠重启HAProxy生效。

2 动态算法

动态算法:基于后端服务器状态进行调度适当调整,新请求将优先调度至当前负载较低的服务器,且权重可以在haproxy运行时动态调整无需重启

hash算法

7.状态页控制

stats enable                ###启动状态页

stats hide-version                ###状态页版本(版本不同,增大攻击难度)

stats refresh <delay>                ###设定刷新时间

stats uri <prefix>                      ###访问什么页面可访问到此页面

stats auth <user>:<passwd>                ####认证时的账号密码,默认不需要账号密码

stats admin { if | unless } <cond>                 ###启用管理功能(一般不启用,因为不安全)

配置:

自定义错误界面:

建立:

mkdir /etc/haproxy/errorpage -p 

vim /etc/haproxy/errorpage/503.http

指定报错文件:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值