一、Haproxy基础介绍

摘要:
没有负载平衡的简单Web应用程序环境用户直接通过域名访问Web服务器。根据平衡设备设置的选择web服务器的规则选择相应的web服务器IP地址。平衡多个服务器的网络流量负载的最简单方法是使用第4层(传输层)负载平衡。负载平衡器将用户的请求转发到后端服务器的Web后端组。协议+内容交换七层负载平衡服务器充当反向代理服务器。
一、负载均衡介绍

1、什么是SLB

SLB(Server Load Balance)服务通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台服务器资源虚拟成一个高性能、高可用的应用服务池;再根据应用指定的方式,将来自客户端的网络请求分发到服务器池中。

SLB服务会检查服务器池中所有服务器的健康状态,自动隔离异常状态的服务器,从而解决了单台服务器的单点问题,同时提高了应用的整体服务能力。在标准的负载均衡功能之外,SLB服务还具备TCP与HTTP抗DDoS攻击的特性,增强了应用服务器的防护能力。

2、负载均衡的类型

无负载平衡:没有负载平衡的简单Web应用程序环境

一、Haproxy基础介绍第1张

 

用户直接通过域名访问Web服务器。如果单个Web服务器出现故障,用户将无法再访问您的Web服务器。此外,如果许多用户试图同时访问您的服务器并且无法处理负载,他们可能会遇到缓慢的体验,或者可能根本无法连接。

4层负载平衡

四层:IP+PORT转发

在四层负载设备中,把client发送的报文目标地址(原来是负载均衡设备的IP地址),根据均衡设备设置的选择web服 务器的规则选择对应的web服务器IP地址,这样client就可以直接跟此服务器建立TCP连接并发送数据。

一、Haproxy基础介绍第2张

 

将网络流量负载平衡到多个服务器的最简单方法是使用第4层(传输层)负载平衡。以这种方式进行负载均衡将根据IP和端口转发。 用户访问负载均衡器,负载均衡器将用户的请求转发给后端服务器的Web后端组。无论选择哪个后端服务器,都将直接响应用户的请求。通常,Web后端中的所有服务器应该提供相同的内容 - 否则用户可能会收到不一致的内容。

7层负载平衡

七层:协议+内容交换

七层负载均衡服务器起了一个反向代理服务器的作用,服务器建立一次TCP连接要三次握手,而client要访问 webserver要先与七层负载设备进行三次握手后建立TCP连接,把要访问的报文信息发送给七层负载均衡;然后七 层负载均衡再根据设置的均衡规则选择特定的webserver,然后通过三次握手与此台webserver建立TCP连接,然 后webserver把需要的数据发送给七层负载均衡设备,负载均衡设备再把数据发送给client;所以,七层负载均衡设 备起到了代理服务器的作用。

一、Haproxy基础介绍第3张

 

7层负载平衡是更复杂的负载均衡网络流量的方法是使用第7层(应用层)负载均衡。使用第7层允许负载均衡器根据用户请求的内容将请求转发到不同的后端服务器。这种负载平衡模式允许您在同一域和端口下运行多个Web应用程序服务器。

二、Haproxy

HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件,是一款具备高并发(一万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计。

历史版本

历史版本更新功能:1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1-dev
1.8:多线程,HTTP/2缓存……
1.7:服务器动态配置,多类型证书……
1.6:DNS解析支持,HTTP连接多路复用……
1.5:开始支持SSL,IPV6,会话保持…

https://www.haproxy.com/ #企业版

http://www.haproxy.org/ #社区版

https://github.com/haproxy #github

三、HAProxy功能

HAProxy功能:

1)TCP和HTTP反向代理
2)SSL/TSL服务器
3)可以针对HTTP请求添加cookie,进行路由后端服务器
4)可平衡负载至后端服务器,并支持持久连接
5)支持所有主服务器故障切换至备用服务器
6)支持专用端口实现监控服务
7)支持不影响现有连接情况下停止接受新连接请求
8)可以在双向添加,修改或删除HTTP报文首部
9)响应报文压缩
10)支持基于pattern实现连接请求的访问控制
11)通过特定的URI为授权用户提供详细的状态信息

不具备的功能:

1)正向代理--squid,nginx
2)缓存代理--varnish
3)web服务--nginx、tengine、apache、php、tomcat
4)UDP--目前不支持UDP协议,2.1版本会支持UDP协议代理
5)单机性能--LVS

免责声明:文章转载自《一、Haproxy基础介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇script执行顺序Linux配置Mysql的主备搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

服务器推送的实现—基于EventSource

一、服务器推送理解   首先要知道为什么使用服务器推送,回答这个问题其实就是相当于回答,服务器推送的优点,可以从两个方面来思考: 1.1 服务器推送的目的   及时的将客户端感兴趣的数据推送给它。 1.2 不是用服务器推送怎么来实现需求   不使用服务端推送,那就只能由客户端定期对服务器发送请求,来获取是否有需要的数据。这样做有几个缺点: 不能及时的获取...

ES入门 (3) 语法(1)DDL(1) 索引操作

1 RESTful   REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可...

Linux终端快速检测网站是否宕机的6个方法

方法 1:使用 fping 命令检测一个网站是否宕机 fping 命令 是一个类似 ping 的程序,使用互联网控制消息协议(ICMP)的 回应请求报文echo request 来判断目标主机是否能回应。 fping 与 ping 的不同之处在于它可以并行地 ping 任意数量的主机,也可以从一个文本文件读入主机名称。 fping 发送一个 ICMP 回应...

Fiddler(Web/HTTP调试利器)

简述 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie、html、js、css等文件,这些都可以让你胡乱修改的意思)。Fiddler要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。 简述 介绍...

Redis 下载与安装(Windows版)

1、Github下载地址:https://github.com/MicrosoftArchive/redis/releases 2、百度网盘下载地址:Redis-x64-3.2.100.zip   密码:kdfq 1、打开一个命令窗口,通过 cd 命令进入到你解压的目录 2、输入命令:redis-server redis.windows.conf ,启动...

vue实现文件夹的上传和下载

需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验; 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包含层级结构。 支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传。刷新页面后继续传输。关闭浏览器后保留进度信息...