欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > haproxy的相关知识

haproxy的相关知识

2024/11/30 14:53:10 来源:https://blog.csdn.net/x1878337584/article/details/141115371  浏览:    关键词:haproxy的相关知识

haproxy:适用七层负载均衡的负载均衡器

环境准备,三台主机,一台做haproxy的服务器,另外两台分别为客户端

haproxy:192.168.38.100

web1:192.168.38.10

web2:192.168.38.20

下载haproxy

查看配置文件

首先是global区域全局配置,常用多进程与多线程配置

每次改完记得重启服务

查看进程

pstree -p | grep haproxy

多线程

然后是default配置,默认配置 针对以下的frontend、backend和listen生效,可以多个name也可以没有name
frontend 前端servername,类似于Nginx的一个虚拟主机server和LVS服务集群。
backend 后端服务器组,等于nginx的upstream和LVS中的RS服务器
listen 将frontend和backend合并在一起配置,相对于frontend和backend配置更简洁

配置格式 :姓名,端口,七层负载,使用的后端服务组以及检查是否上下线的规范

主要内容:算法,内容包括static-rr,first,roundrobin,random,source,uri,hdr()

动态算法roundrobin,random支持socate工具对权重进行动态调整

 echo "get weight webserver_80/webserverl "socat stdio/var/lib/haproxy/haproxy.sockecho "set weight webserver_80/webserver1 " socat stdio/var/1ib/haproxy/haproxy.sock

source指的是源地址相处的访问同一台服务器,其使用取模法进行算法计算会由于权重的影响发生较大的变动,因此还有一种为一致性哈希的算法,其影响是局部

uri基于对用户请求的URI的左半部分或整个uri做hash,再将hash结果对总权重进行取模后根据最终结果将请求转发到后端指定服务器,与source一样有两种计算方式

hdr针对用户每个http头部(header)请求中的指定信息做hash,此处由 name 指定的http首部将会被取出并做hash计算然后由服务器总权重取模以后派发至某挑出的服务器,如果无有效值,则会使用默认的轮询调度。

计算方式为服务器哈希环点key=hash(后端服务器虚拟ip)%(2^32),客户机哈希环点key=hash(client_ip)%(2^32),范围均在0-2^32-1之间,客户端会寻找与他距离最近的服务器,顺时针寻找

sourece,uri,hdr均支持hash-type consistent命令调整是否为动态

高级功能与配置

基于cookie的会话保持

haproxy状态页

ip透传

七层中控制ip透传的是default配置中的参数,nginx与apache均可用

或者可以修改日志文件

四层中,IP透传需要使用代理服务

ACL配置选项

根据报头进行判断

从路径的第一个主机名开始到问号前结束,判断是否包含

根据路径

根据网段或者ip

实现动静分离

使用服务器的限制

自定义错误界面

创建文件,复制到创建的文件修改

并将创建的文件写入haproxy的default配置文件中

四层负载实现实力,以mysql为准

在客户端分别安装mariadb,并创建用户允许远程登陆

在服务端进行配置

haproxy的https实现

制作证书

openssreq-newkey rsa:2048-nodes -sha256 -keyout /etc/haproxy/certs/ni .org.key-x509 -days 365 out /etc/haproxy/certs/ni.org.crt

配置实例

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com