首页 > 系统相关 >nginx和lvs区别

nginx和lvs区别

时间:2024-04-08 09:56:26浏览次数:26  
标签:负载 lvs 区别 nginx Apache 服务器 节点

lvs和nginx都可以用作多机负载方案,他们各有优缺点,在生产环境中需要好好分析实际情况并加以利用。

 

lvs的优势:

1.抗负载能力强,因为lvs工作方式的逻辑是非常简单的,而且工作在网络层第4层,仅作请求分发用,没有流量,所以在效率上基本不需要太过考虑。lvs一般很少出现故障,即使出现故障一般也是其他地方(如内存、CPU等)出现问题导致lvs出现问题。

2.配置性地,这通常是一大劣势同时也是一大优势,因为没有太多的可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。

3.工作稳定,因为其本省抗负载能力很强,所以稳定性高也是顺理成章的事,另外各种lvs都有完整的双机热备方案,所以一点不用担心均衡器本身会出什么问题,节点出现故障的话,lvs会自动判别,所以系统整体式非常稳定的。

4.无流量,lvs仅仅分发请求,而流量并不从它本身出去,所以可以利用它这点来做一些线路分流之用。没有流量同时也保住了均衡器的IO性能不会受到大流量的影响。

5.lvs基本上能支持所有应用,因为绿色工作在第4层,所以它可以对几乎所有应用做负载均衡,包括http、数据库、聊天室等。

另外:lvs也不是完全能判别节点故障的,比如在wlc分配方式下,集群里有一个节点没有配置vip,会使整个集群不能使用,这时使用wrr分配方式则会丢掉一台机器。目前这个问题还在进一步测试中。所以用lvs也得多多当心为妙。

nginx和lvs作对比的结果:

1.nginx工作在网络的第7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结构等,相比之下lvs并不具备这样的功能,所以nginx单凭这点可以利用的场合就远多于lvs了;但nginx有用的这些功能使其可调整度要高于lvs,所以经常要去触碰触碰,由lvs的第2条优点来看,触碰多了,人为出现问题的几率也就会大。

2.nginx对网络的依赖较小,理论上只要ping得通,网页访问正常,nginx就能连得通,nginx同时还能区分内外网,如果是同时拥有内外网的节点,就相当于单机拥有了备份线路;lvs就比较依赖于网络环境,目前来看服务器在同一网段内并且lvs使用direct方式分流,效果较能得到保证。另外注意,lvs需要向托管商至少申请多于一个ip来做visual ip,貌似是不能用本省的ip来做VIP的。要做好lvs管理员,确实得跟进学习很多有关网络通信方面的知识,就不再是一个http那么简单了。

3.nginx安装和配置比较简单,测试起来也很方便,因为它基本能把错误用日志打印出来。lvs的安装和配置、测试就要花比较长的时间,因为同上所述,lvs对网络依赖性比较大,很多时候不能配置成功都是因为网络问题而不是配置问题,出了问题要解决也相应的会麻烦的多。

4.nginx也同样能承受很高负载且稳定,但负载度很稳定度差lvs还有几个等级:nginx处理所有流量所以受限于机器IO和配置;本身的bug也还是难以避免的;nginx没有现成的双机热备方案,所以跑在单机上还是风险比较大,单机上的事情全都很难说。

5.nginx可以检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点。目前lvs中ldirectd也能支持针对服务器内部的情况来监控,但lvs的原理使其不能重发请求。重发请求这点,比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,nginx会把上传切到另一台服务器重新处理,而lvs就直接断掉了,如果是上传一个很大的文件或者很重要的文件的话,用户可能会因此而恼火。

 6.nginx对请求的异步处理可以帮助节点服务器减轻负载,键入使用Apache直接对外服务,那么出现很多的窄带链接时Apache服务器将会占用大量内存而不能释放,使用多于一个nginx做Apache代理的话,这些窄带链接会被nginx挡住,Apache上就不会堆积过多的请求,这样就减少了相当多的内存占用。这点使用squid也有相同的作用,即使squid本身配置为不缓存,对Apache还是有很大帮助你的。lvs没有这些功能,也就无法能比较。

nginx也可以作为中层代理使用,这一层面nginx基本上无对手,唯一可以撼动nginx的就只有lighttpd了,不过lighttpd目前还没有能做到nginx完全的功能,配置也不那么清晰易读。另外,中层代理的ip也是重要的,所以中层代理业拥有一个VIP和lvs是最完美的方案了。

 

来源:http://www.shanhubei.com/archives/55158.html

标签:负载,lvs,区别,nginx,Apache,服务器,节点
From: https://www.cnblogs.com/shanhubei/p/18120486

相关文章

  • 不同于Oracle:SEQUENCE的区别
    不同于Oracle:SEQUENCE的区别前言在使用Oracle数据库SEQUENCE功能时,发现Oracle对边界处理比较奇怪。刚好GreatSQL也支持SEQUENCE,就拿来一起比较一下。先说结论:GreatSQL的使用基本和Oracle基本一致,但是对STARTWITH的边界限制有所不同。本次测试使用数据库的版本号#Oracle......
  • 绿联 安装Frpc内网穿透并使用Nginx反向代理
    绿联安装Frpc内网穿透并使用Nginx反向代理1、前言服务器官网:雨云-新一代云服务提供商本教程使用Frps与Frpc进行内网穿透,其中Frps需要自购服务器安装,若无法购买服务器则本教程对你无用;另外还需拥有自己的域名,雨云免费二级域名好像不能申请证书;推荐购买国内的主机,使......
  • C++之静态变量和全局变量的区别
    全局变量和静态变量的存储方式是一样的,只是作用域不同。静态局部变量具有局部作用域只对定义自己的函数可见,只被初始化一次,自从初始化一次之后直到程序运行期间一直都在。静态全局变量具有全局作用域作用于定义它的程序文件但是不能作用于项目里的其它文件,这一点和全局变......
  • PHP与Java的区别分析
    一、语言特点php:一种的像Python的动态弱语言类型的服务器脚本语言,不需要编译代码;它是专为Web开发目的而开发和设计的,而且简单容易上手。Java:是一种通用的面向对象编程语言,属于强势优选语言类型,在执行前必须先正确编译。是面向对象的和人类可读的;支持服务器端和客户端;可用于......
  • nginx基础篇之虚拟主机实战
    基于nginx部署网站虚拟主机指的就是一个独立的站点,具有独立的域名,有完整的www服务,例如网站、FTP、邮件等。Nginx支持多虚拟主机,在一台机器上可以运行完全独立的多个站点。一、为什么配置虚拟主机一些草根流量站长,常会搭建个人站点进行资源分享交流,并且可能有多个不同业务的站......
  • nginx高级篇之日志切割
    一、日志切割(shell脚本)nginx日志默认是不切割的,网站运行久了自然生成大量日志,导致单文件的处理,太麻烦,因此工作里一般定期切割,一般按天切割。切割理念1.给nginx进程发送信号,让nginx生成一个新的日志文件,这就是一个日志切割2.手动切割,修改日志准备好旧的日志文件,测试写入大......
  • Nginx离线配置ssl证书
    纯离线的内网环境中使用nginx配置ssl并使用https访问网站。对于服务器中nginx及其它环境的搭建,可参考我的该文章LinuxCentos7离线部署SpringBoot前后端分离项目同时,该文章涉及的部分安装包已提供在以上文章的开头部分。检查环境进入nginx的安装目录(一般是/usr/lo......
  • nginx日志切割之logrotate
    配置详解logrotate是基于crond服务(定时任务)来运行的,有几个重要的配置:1、/etc/logrotate.conf(主配置)和/etc/logrotate.d/*(子配置)/etc/logrotate.conf是全局配置,logrotate.conf里面包含include/etc/logrotate.d这句,加载子配置文件的意思,说明/etc/logrotate.d/目录下是具体的配......
  • Java并发(二十四)----wait、notify、notifyAll、join区别与联系
    1、join是调用者轮询检查线程alive状态,执行后线程进入阻塞状态。如在线程B中调用线程A的join(),那线程B会进入到阻塞队列,直到join结束或中断线程B才开始进入阻塞队列。可以实现一个线程的顺序执行。t1.join();等价于下面的代码synchronized(t1){  //调用者线程进入t1......
  • Nginx 文件名逻辑漏洞(CVE-2013-4547)复现
    漏洞原理影响范围:Nginx0.8.41~1.4.3影响范围:Nginx1.5.0~1.5.7Nginx在解析php文件的时候通常在配置文件中如下配置location~\.php${roothtml;includefastcgi_params;fastcgi_passphp:9000;......