负载均衡器技术Nginx和F5的优缺点对比

负载均衡器技术Nginx和F5的优缺点对比,第1张

这是网上摘抄的文章,正好想了解一下负载均衡,看这篇文章写的比较易懂,就。。。。


对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。

目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。

腾讯、淘宝、新浪等大型门户及商业网站使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里就简单介绍下这两种技术:

一软件负载均衡解决方案

在一台服务器的 *** 作系统上,安装一个附加软件来实现负载均衡,如Nginx负载均衡(我们管理系统平台使用的也是这款均衡器)。它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足大部分的负载均衡需求。

1什么是Nginx

Nginx ("engine x") 是一个高性能的>

当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,通过负载均衡的方式来分担服务器压力。

建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,将该访问请求引入该服务器。

如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。

nginx实现反向代理负载均衡

a、本地使用Windows系统,然后使用VirutalBox安装一个虚拟的Linux系统。

在本地的Windows系统上分别安装nginx(侦听8080端口)和apache(侦听80端口)。在虚拟的Linux系统上安装apache(侦听80端口)。这样相当于拥有了1台nginx在前端作为反向代理服务器;后面有2台apache作为应用程序服务器,可以看作是小型的server cluster。

b、nginx用来作为反向代理服务器,放置到两台apache之前,作为用户访问的入口。

      加入了微博以后,经常听到运维老师说到四层负载均衡,当然,年轻的我也是浅显的理解,哦,要用四层负载均衡,得申请虚拟IP(VIP),得确定服务端口。可是经历一段时间,我申请负载均衡的时候,公司的运维老师又跟我说,你申请七层的吧,七层的方便管理,(内心ps:专业性有点强啊,啥是七层,四层都没搞明白呢,咋又来了个七层),“好的,老师,我在xxx后台申请是吧,咱七层的好处是?”。吧啦吧啦。。。。。运维老师说了一堆,我似懂非懂的听完恩了一声就走了,回来一想,咱得弄明白啊,不然显不出咱是高级工程师。于是网上各种搜索文章,终于找到了一篇“传道授业解惑”的文章,分享给大家。

注意:上面的很多Load Balancer既可以做四层交换,也可以做七层交换。

      所谓 四层负载均衡 ,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
      以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。

       七层应用负载的好处 ,是使得整个网络更" 智能化 "。例如访问一个网站的用户流量,可以通过七层的方式,将对类的请求转发到特定的服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术。当然这只是七层应用的一个小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任意意义上的修改,极大的提升了应用系统在网络层的灵活性。很多在后台,例如Nginx或者Apache上部署的功能可以前移到负载均衡设备上,例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等功能。
      另外一个常常被提到功能就是 安全性 。网络中最常见的SYN Flood攻击,即黑客控制众多源客户端,使用虚假IP地址对同一目标发送SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到Denial of Service(DoS)的目的。从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤特定报文,例如SQL Injection等应用层面的特定攻击手段,从应用层面进一步提高系统整体安全。
       现在的7层负载均衡,主要还是着重于应用>负载均衡配置是超大型机器需要考虑的一些问题 同时也是数据安全的一种做法 下面我来介绍在nginx中反向代理 负载均衡配置图解 大家可参考本文章来 *** 作

首先简单的介绍下修改默认的nginx conf 大概在 ~ 行 去掉前面的#号 重启nginx

#location ~ php$ {# proxy_pass ;#}改为 location ~ php$ { proxy_pass // : ;}

分别访问 出现如下图已经能够针对不同请求访问服务器了

这样当我们访问 l的时候 前端的nginx会自动进行响应 当访问 /test php的时候(这个时候nginx目录下根本就没有该文件) 但是通过上面的设置location ~ php$(表示

访问php页面test php : 的Apache进行响应

访问目录phpMyAdmin下的页面的话 : 的Apache进行响应

修改原始默认的nginx conf的server模块部分(大概在 ~ 行)

#location ~ php$ {# proxy_pass ;#}修改为 location ^~ /phpMyAdmin/ { proxy_pass : ;} location ~ php$ { proxy_pass : ;}

上面第一个部分location ^~ /phpMyAdmin/ 表示不使用; index index

2在配置文件nginxconf的模块中添加服务器集群server cluster的定义。TwWinGWit

upstream myCluster { server 19216823:8080 ; server 19216822:80 ; server 19216828:80 ;}

表示这个server cluster包含3台服务器

3然后在server模块中定义负载均衡

location ~ php$ { proxy_pass //myCluster ; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}

proxy_pass //myCluster ; 这里的名字和上面的cluster的名字相同

配置好后,当访问页面,nginx目录下根本没有该文件,但是它会自动将其pass到myCluster定义的服务器群,分别由上述的3台服务器中的一台来做处理。

上面在定义upstream的时候每个server之后没有定义权重,表示两者均衡;如果希望某个更多响应的话,可以加weight

upstream myCluster { server 19216823:8080 weight=5; server 19216822:80 ; server 19216828:80 ;}

这样表示5/7的几率访问第一个server,1/7访问第二个、第三个。另外还可以定义max_fails和fail_timeout等参数。

所以我们使用nginx的反向代理服务器reverse proxy server的功能,将其布置到多台apache server的前端。

nginx仅仅用来处理静态页面响应和动态请求的代理pass,后台的apache服务器来对前台pass过来的动态页面进行处理并返回给nginx。

1、nginx负载均衡原理为:Nginx的异步框架处理并发请求后,先将其分发给后台服务端来做复杂的计算、处理和响应,使其在业务量增加的时候可以方便地扩容后台服务器。
2、负载均衡在服务端开发中是一个比较重要的特性,除了作为常规的Web服务器外,还被大规模的用于反向代理前端。
3、
4、Nginx是一款轻量级的Web服务器或反向代理服务器及电子邮件代理服务器,在BSDlike协议下发行。其特点是占有内存少,并发能力强nginx仅仅用来处理静态页面响应和动态请求的代理pass,后台的apacheserver作为appserver来对前台pass过来的动态页面进行处理并返回给nginx。
5、
6、

a使用语法:

check interval=milliseconds [fall=count] [rise=count] [timeout=milliseconds] [default_down=true|false] [type=tcp|>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10238011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)