负载均衡、反向代理 与F5

一、负载均衡
1、什么是负载均衡

随着请求数的快速增长,单服务器已经无法承担大量用户的并发访问,这个时候,就需要建立服务器集群,来让多台服务器协同工作,提高整体项目的吞吐量和QPS。假设一台设备资源占有率已经饱和,而另一台服务器缺只有零星几个请求处理,这显然是不合理的。我们期望多台服务器需要平均承担客户端发来的请求,使每台机器都充分利用。这时,我们就需要用到一种技术,叫做负载均衡。

负载均衡是多台服务器组合为一个集群,其中每台机器可以单独运行,服务器之间地位相同,通过负载均衡技术,将客户端发来的请求平均分配到每台服务器中,使得项目的负载能够均衡的分布,每台服务器的资源使用量也基本相同。直白的说,通过负载均衡技术,使得项目巨额访问量从单台服务器均匀的分摊到每台服务器上。这种思想,也是高性能网站结构的核心思想:分!

2、负载均衡之DNS轮询

我们对同一个域名添加多个A记录解析。DNS服务器会将请求随机分配到其中一条记录中。DNS轮询是否支持需要询问域名注册商。比如,我对博客www.lanecn.com添加了一个二级域名nginx.lanecn.com。在万网的操作后台,对这个域名添加了4条A记录解析,分别为10.10.10.1、10.10.10.2、10.10.10.3、10.10.10.4。如果有请求来访问nginx.lanecn.com,域名会随机被解析到10.10.10.1 – 10.10.10.4中的其中一台。这就是用DNS轮询的方式来做负载均衡。

优点:DNS轮询的成本非常低。

缺点:1)分配不均匀。首先本地浏览器缓存问题会使下次请求根本不会去查询域名解析的IP,其次最简单的随机分配算法,不能根据服务器的性能差异来为某台高配机器多分,低配机器少分。这使得低配机器已经高负荷运行了,而高配机器只有10%的资源消耗。2)不可靠。DNS轮询没有心跳检测,假设其中一台服务器宕机,域名供应商是不可知的。其次DNS生效时间过长,而且各级都有缓存。

应用:在可靠性要求不高的服务器集群可以使用DNS轮询

3、负载均衡之四\七层负载均衡设备

在可靠性要求高的应用场景,硬件层面通常采用四\七层负载均衡设备。鼎鼎大名的就是F5负载均衡设备。

在网络中,有一个叫做开放系统互联模型,也就是OSI七层模型。一到四层和数据传输相关,五到七层是和应用程序数据相关,数据一层层的传输。从第一层到第七层名称依次为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。其中,我们熟知的IP协议位于第三层网络层,TCP协议位于第四层传输层,HTTP/FTP等协议位于最高的一层第七层应用层。

常见的负载均衡交换机有F5 BIG-IP、Cisco CSS等,价格高昂。这些设备通常应用在第四层或者第七层。因此,被成为四\七层负载均衡设备。

4、负载均衡之软件层面

1)应用在第四层的负载均衡软件的代表是Linux Virtual Server,简称为LVS。LVS根据IP和内容进行请求分发。并且可以自动识别并屏蔽故障服务器,使得服务器集群更加高可用。

2)、应用在第七层的负载均衡软件的代表是基于HTTP反向代理的Nginx、HA Proxy等。Nginx的反向代理支持虚拟主机,可配置。能够按照轮询、IP、URL等方式进行负载均衡,和LVS一样,也支持故障检查。

二、反向代理

1、什么是反向代理

我们先来看看什么叫代理:客户端使用代理服务器,来访问一些在国家政策不允许访问的国外网站。基本流程是:客户端发送请求给代理服务器去,代理服务器去访问目标网站,然后代理服务器将目标网站返回的结果发送给客户端。

现在,我们来看看什么叫反向代理:网站内部使用代理服务器,来中转客户端发来的请求。基本流程是:客户端发送请求给目标网站,目标网站先经过反向代理服务器,然后将请求转发给内部网络的其他服务器来处理,最后将数据返回。

通俗的讲:代理,就是客户端使用的,对目标网站来说,代理服务器就是一个客户。而反向代理,就是目标网站使用的,对于用户来讲,反向代理服务器就是一个网站服务器。

定义:反向代理就是客户端发送请求给代理服务器,代理服务器再转发给内部的Web服务器集群,然后将Web服务器集群返回的数据发送给客户端。在客户端看来,代理服务器的表现就是一个真正的Web服务器。

反向代理服务器并不能处理静态网页或CGI程序,也不保存任何数据。网站数据都是保存在内部网络的Web服务器中。因此,如果暴露在公网的反向代理服务器被攻击,也不会使网站数据遭到破坏,这就增强了Web服务器的安全性。

三、关于F5负载均衡器
dodozaixian 2015-09-24

目前全球范围内应用最为广泛的负载均衡设为为美国F5公司。F5公司于2000年底进驻中国,目前已分别在北京、上海、广州、成都、深圳、珠海设立了办事机构。在华拥有超过500位的F5认证工程师,为遍布全国的用户提供全面的技术支持。在国内业界,F5产品已经成为了主流负载均衡技术的代名词。

产品技术特点:

1)全面的负载均衡
BIG-IP LTM(本地流量管理)包含静态和动态负载均衡方法,包括动态速率、最少连接和观察模式的动态平衡,这些方法用于以整体方式跟踪服务器的动态性能。这保证了始终选择最佳的资源,以提高性能。可支持所有基于TCP/IP协议的服务器负载均衡。可支持最小连接数、轮询、比例、最快响应、哈希、预测、观察、动态比例等负载均衡算法。
2)应用状态监控
BIG-IP LTM提供的监视器,用于检查设备、应用和内容的可用性,包括适合多种应用的专用监视器(包括多种应用服务器、SQL、SIP、LDAP、XML/SOAP、RTSP、SASP、SMB等),以及用于检查内容和模拟应用调用的定制监视器。
3)高可用性和交易保障
BIG-IP LTM提供了次秒级系统故障切换和全面的连接映射,无论出现何种系统、服务器或应用故障,都能保证它是一个高可用的解决方案。BIG-IP LTM可以主动检测和响应任何服务器或应用错误。
4)支持NAT地址转换
提供NAT地址转换功能,能够实现动态或静态地址转换。
5)支持访问控制列表
能够实现防火墙的基本功能,建立访问控制列表,拒接IP网段或端口号吗。
6)广域流量管理器(插件模块)
为在全球各地的多个数据中心中运行的应用提供高可用性、最高的性能和全局管理。
7)链路控制器(插件模块)
无缝地监控多个WAN连接的可用性和性能,智能地管理站点的双向流量,从而提供容错的、经过优化的互联网接入。比如管理控制CT和CNC的网络流量。
8)应用防火墙(插件模块)
该模块可加入到F5设备中,为设备提供更高级的安全服务。
9)支持路由
该功能为F5设备中基本功能,但只支持静态路由,如果使用较为高级的OSPF路由协议,需要购买单独的模块来支持。

扩展应用

1)内容转换
BIG-IP LTM为将许多繁杂或者重复功能卸载到集中的高性能网络设备上提供了全面的解决方案。SSL、压缩以及BIG-IP LTM的其它多项功能提供了一个完整的内容转换网关,可重定向、插入或者全面转换应用内容,以实现有效且高效的应用集成。
2)OneConnect
F5 OneConnect? 将数百万个请求汇聚为几百个服务器端的连接,确保后端系统能够高效地处理这些连接,从而使服务器容量提高60%。
3)高速缓存
智能缓存功能通过将重复流量从Web和应用服务器上卸载,使服务器容量提高9倍,从而实现显著的成本节约。该功能也是业内唯一提供多存储库缓存的解决方案,能够针对各应用或部门管理不同的缓存库,为高优先级的应用提供精确的智能控制。
4)SSL加速和卸载
每个BIG-IP LTM设备提供了硬件加速方式的SSL加密,以消除应用服务器的SSL负担。通过加快设置和批量加密,企业可以采用更安全的密码将全部通信迁移到SSL,几乎不会导致应用性能下降或瓶颈。

优化的应用
1)智能应用交换
BIG-IP LTM拥有读取所有IP应用的独特能力,因此,它可以转换并且持续保留特定供应商的应用服务器(Microsoft、IBM、Oracle、SUN等)的独特信息; Web服务应用的XML数据;或者指示移动/无线应用的定制数值。您的企业可以借助BIG-IP LTM转换、记录以及持续保留有效负载或数据流的能力,实现更高的可靠性和可扩展性。
2)智能压缩
将应用性能提高至3倍,同时使带宽的使用量减少80%。使用业界标准的gzip和DEFLATE压缩算法减少HTTP流量,通过更慢/低的带宽连接降低带宽消耗量,缩短用户下载时间。这一功能对于压缩多种类型的文件提供了丰富的支持能力,包括HTTP、XML、JavaScript、J2EE应用等。
3)灵活的第4至7层流量整形
通过为更高优先级的应用分配带宽,控制流量峰值,并且根据第4层或第7层参数确定流量的优先级,保证最佳的应用性能。即目前我们IDC机房在核心交换机上所启用的QOS功能。
4)TCP Express
BIG-IP LTM的高度优化的TCP/IP堆栈(称为TCP Express?)将TCP/IP技术和最新RFC的改进功能,与F5开发的多项改进和扩展功能相结合,最大限度降低了拥塞、丢包和恢复的影响。BIG-IP LTM是一个全代理设备,因此,TCP Express可以屏蔽并且透明地优化服务器或客户端上运行的原有的或者不兼容的TCP堆栈。这样可以使用户的性能提高2倍,并且使带宽效率提高4倍,同时降低您的服务器上的连接负载。

负载均衡、反向代理 与F5相关推荐

  1. day10 负载均衡反向代理

    day10 负载均衡反向代理 1.复习 1.nginx+python的流程1.1安装基础环境yum install python3 pip3 install django==2.2.2安装uwsgi之 ...

  2. Linux中 Nginx+uwsgi部署flask项目 Nginx负载均衡 反向代理

    Nginx是一款自由的.开源的.高性能HTTP服务器和反向代理服务器. 轻量级,同样起web服务,比 apache占用更少的内存及资源 抗并发, nginx处理请求是异步非阻塞的,而 apache则是 ...

  3. 架构之Nginx(负载均衡/反向代理)

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器 ,也是一个 IMAP/POP3/SMTP 代理 服务器 . Nginx 是由 Igor Sys ...

  4. Nginx安装/负载均衡/反向代理配置与调优

    [Nginx安装] Linux下直接使用包管理安装 sudo apt-get install nginx 使用whereis命令查看安装位置 whereis nginx #sbin下代表nginx可执 ...

  5. 负载均衡 反向代理为何叫反向代理?

    转  https://www.zhihu.com/question/24723688 与正向代理比起来,反向代理是什么东西反向了? 关注者 1217 被浏览 184352 41 个回答 刘志军 公众号 ...

  6. 【Ngnix】可提供负载均衡反向代理的web服务器

    前言 之前我们用IIS搭建的是web服务器即内网服务器,但通常不直接接受外网用户请求,由反向代理服务器充当这一衔接角色,用户直接访问反向代理服务器就可以获得目标服务器的资源.为提高网络吞吐和加强网络数 ...

  7. Nginx学习总结(10)——Nginx前后端分离将多个请求转发到多个Tomcat,负载均衡反向代理

    一.谈谈"渲染" 相信好多人都挺听过"渲染"这个词,但不清楚它是什么意思?前端开发以为这是后端的活儿,后端开发以为是前端的事儿,推着推着就不了了之.其实渲染很简 ...

  8. lighttpd 负载均衡-反向代理+cache浅谈

    Lighttpd有硬盘级别的cache-(mod_cache)和内存级别的cache(mod_mem_cache),内存级别的cache是国人的产品,我喜欢用lighttpd就是因为它具有2种选择的c ...

  9. 负载均衡反向代理 动静分离

    #!/bin/bash IP=192.168.186.77 WG=192.168.186.2 YM=255.255.255.0 DIR=/etc/sysconfig/network-scripts W ...

最新文章

  1. Ruby中的设计模式
  2. MySQL创建触发器(CREATE TRIGGER)
  3. TPL Dataflow库的几个扩展函数
  4. Swift vs. Objective-C:未来看好Swift的十个理由
  5. 回滚master代码_Git之master主干代码回滚
  6. Java黑皮书课后题第10章:*10.19(Mersenne素数)
  7. PHP如何实现HTML页面静态化
  8. 前端调数据会经常用到的事件处理
  9. 5-2 持久化的作用/5-3 RDB1/5-4 RDB2/5-5 RDB3
  10. ubuntu下vim配置成c++开发编辑器
  11. ElementUI:导航nav设置路由模式后,切换路由导航样式不变话
  12. 《算法》第四版中文——学习资料
  13. Allpairs正交工具的安装、使用及错误提示解决办法
  14. mac2600r_水星MAC2600R路由器
  15. 《共同警戒区》观后感(r10笔记第97天)
  16. 【数字IC验证】1-systemverilog数据类型
  17. 小程序搜索页面搜索记录和热门搜索实现
  18. 微生物群落的circos图怎么画_微生物群落分析
  19. 第五课:实现花样流水灯
  20. 迅雷插件导致js获取后端返回结果报错问题

热门文章

  1. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之Pinctrl子系统和GPIO子系统的使用
  2. Keil综合(02)工程窗口各项图标描述
  3. Shell编程基础(1)
  4. Linux下Exit和_exit函数说明
  5. Linux下关于gcc、vim、readelf、rpm、yum、彩色进度条的问题
  6. 嵌入式Linux系统编程学习之十三信号概念
  7. 文字 竖排居中_微信朋友圈文字如何设置居中居右?
  8. PHP编译configure时常见错误(转)
  9. Electro桌面应用开发之HelloWorld
  10. 第二冲刺阶段绩效评估