全网最详细haproxy设置

打印 上一主题 下一主题

主题 550|帖子 550|积分 1650

Haproxy是法国人Willy Tarreau开辟的一款高性能的TCP和HTTP负载均衡器,具有广泛的功能和特性,使其在负载均衡和反向代理领域备受推许。以下是对Haproxy的详细先容:

一、根本概述

定义:Haproxy是一个开源的高性能的反向代理大概说是负载均衡服务软件,可以或许处置惩罚大量并发连接,提供高可用性和负载均衡功能。
功能:支持双机热备、假造主机、基于TCP和HTTP应用代理等功能,同时内置了监控和统计功能,可以及时获取服务器的状态和性能指标。
应用场景:特别适用于负载特大的web站点,这些站点通常又需要会话保持或七层处置惩罚。
二、核心特性

高性能:
使用异步事件驱动的架构,可以或许处置惩罚非常高的并发连接数,支持数以万计的并发连接。
较低的耽误和高吞吐量,使得Haproxy在处置惩罚大规模网络请求时表现优异。
高可靠性:
提供无单点故障的服务,确保服务的高可用性。
可以或许对后端服务器进行健康检查,及时发现并清除出故障的服务器。
负载均衡:
可以将流量匀称地分配到后端服务器上,提高体系的性能和可扩展性。
支持多种负载均衡算法,如轮询(roundrobin)、最少连接数(leastconn)等,可以根据实际需求选择合适的算法。
会话保持:
支持多种会话保持机制,如基于客户端IP的Hash计算、基于cookie的会话保持等,确保用户请求可以或许被转发到正确的后端服务器上。
SSL闭幕和加速:
可以在前端进行SSL闭幕,解密和加密SSL/TLS流量,从而减轻后端服务器的负担并提拔性能。
可定制性:
提供了丰富的设置选项和机动的扩展机制,使得用户可以根据实际需求进行定制化设置和扩展。
支持多种协议:
支持HTTP、HTTPS、TCP、SMTP等多种协议,可以满足差别场景下的需求。
三、工作模式

Haproxy的工作模式一般有两种:TCP模式和HTTP模式。

TCP模式:实例运行于TCP模式,在客户端和服务器端之间将建立一个全双工的连接,且不会对7层报文做任何范例的检查,只能以简单模式工作。通常为SSL、SSH、SMTP等应用使用。
HTTP模式:实例运行于HTTP模式,客户端请求在转发至后端服务器之前将被深度分析,全部不与RFC格式兼容的请求都会被拒绝。适用于需要HTTP层处置惩罚的场景。
haproxy实验情况的设置

haproxy的网络情况设置
webserver1和webserver2的网络情况的设置


将webserver1和webserver2的文件导入nginx的默认发布文件





在webserver1和webserver2上分别打开nginx的服务


末了在haproxy主机上进行测试,访问成功情况设置就搞定了

1.haproxy的根本部署方法以及负载均衡的实现

在haproxy主机上安装haproxy



查看haproxy的设置文件并进行设置




2.haproxy的全局设置参数以及日志分离

查看haproxy的默认历程

现在进行多历程的设置

开启两个以后查看



查看子历程中的线程数

同时设定多线程和多历程,会产生互斥

互斥后重启服务就会报错

现在将一个解释掉

然后重启服务后在进行查看

自定义haproxy的日志


进入设置文件进行设置,同时还需要开启udp协议


3.haproxy-proxies中的常用设置参数

check:对指定的real进行健康状态检查  inter:健康状态检查隔断时间 默认为2000ms  fall:后端服务器从线上转为线下的连续失败次数,默认为3 rise:后端服务器从下线恢复上线的检查的连续有效次数,默认为2 weight:默认为1,最大值为256,0(状态为蓝色)表现不加入负载均衡,但仍担当持久连接                   

设置backup,设置为web_sorry还要把webserver1和webserver2的nginx下线



先在haproxy主机上安装httpd

进入httpd的设置文件将端口号改为8080

然后开启httpd服务

给index.html文件写入内容

然后进入haproxy设置文件写入

然后进行访问



要进行维护先将一台下线,使用disabled:将后端服务器标志为不可用状态,即维护状态

下线的为172.25.254.10,以是访问就没有10

然后进入设置文件将disabled删掉10又可以访问


redirect prefix http://www.baidu.com/ 表现将请求定向定向到一个指定网站

在浏览器上访问172.25.254.100 定向到了百度



maxconn:当前后端server的最大并发连接数




4.haproxy的热更新方法



给该文件提权进行查看



在haproxy上安装socat(动态调整haproxy中的参数)

查看haproxy的状态

查看服务器的状态

查看当前权重,更改权重为1,更改后查看



下线后端服务器下线后查看全为172.25.254.20

上线后端服务器,上线后查看恢复正常

haproxy多历程热处置惩罚

重启服务后查看

5.haproxy的算法

haproxy的静态算法,是不能修改权重



haproxy的动态算法
roundrobin算法,是谁空闲了就给谁

leastconn:加权最少连接的动态,并且支持慢启动


haproxy的其他算法
source:当后端服务器数据量发生变革时,会导致很多用户的请求转发至新的后端服务器

进行访问时全部掉到172.25.254.20

同等性hash:当服务器的总权重发生变革时,对调度结果影响时局部的,不会引起大的变动hash(0)mod n 该hash算法是动态的,支持使用socat等工具进行在线权重调整,支持慢启动


uri:基于用户请求的uri的左半部门或整个uri做hash,再将hash结果对总权重进行取模后根据最闭幕果将请求转发到后端指定服务器,适用于后端是缓存服务器场景





进行访问



hdr:针对每个http头部(header)请求中的指定信息做hash



6.haproxy的状态页面监控




7.haproxy-基于cookie的会话保持

把hash打开


进行基于cookie的会话保持,cookie value:为当前server指定cookie值,实现基于cookie的会话粘性,相对于基于source地点hash调度算法对客户端的粒度更精准,但同时也加大了haproxy负载


8.haproxy-ip透传

把该条解释掉,进行访问



在172.25.254.20主机上访问日志,看不到配景支持的服务,把该条打开,做透传,就能看到是100进行访问的



在httpd上做透传,在webserver1主机大将nginx服务关闭掉,然后安装httpd



在haproxy主机中访问

在webserver1查看日志编辑httpd主设置文件在haproxy主机上进行访问



四层代理



在webserver2的nginx设置文件中进行设置


再次进行访问就可以访问到20

在webserver2的nginx设置文件中添加





9.haproxy的访问控制列表应用



添加ACL列表保存然后进行访问在计算机中查看文件然后进行访问即可





10.haproxy-自动筛选错误页面内容

先将webserver1的httpd服务和webserver2的nginx服务都暂停


然后使用浏览器进行访问

来到haproxy主机过滤一下设置文件,找到503的,起首在haproxy文件下建立一个文件,然后在新建文件底下再次新建一个503.http文件在此文件中写入内容把该文件加入haproxy主设置文件中,保持与退出并重启服务





然后在浏览器上再次访问172.25.254.100

11.haproxy的四层负载示例


起首在webserver1和webserver2上安装数据库


进入数据库设置文件修改id在webserver1和webserver2上都要修改



然后就可以实现长途登录

进入haproxy的主设置文件添加






12.haproxy-https的加密访问

证书制作

将文件导入,公钥和私钥都有了


进入haproxy主设置文件进行写入


查看443端口已打开





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表