Nginx你有什么优点点

基于的Lighttpd的网络服务器具有这样的特点:占用内存资源少占用cpu资源的优点,且开源社区提供丰富的应用模块lighttpd是目前开源社区中轻量级的web网络服务器中的佼佼者。其支持FastCGI接口CGII接口,AuthI接口以及输出压缩技术并提供目前被大量使用URL重写技术,服务器链接等特点Lighttpd使用fastcgi方式运行php,从而使得应用较少的PHP应用进程能够实现大的并发量响应能力[3]。Fastcgi具有以下重要特点:

(1)在稳定性方面:fastcgi接口采用独立的进程池运行策略即使某一个进程挂掉,系统并鈈会崩溃只需要重新分配新的进程来运行即可。

(2)在安全性方面:fastcgi接口和主机的服务互不干扰的模块fastcgi即使崩溃也不会影响服务器;

(3)在性能方面:fastcgi接口仅仅处理动态逻辑部分,大的载荷的IO操作仍然由服务器完成这样服务器可以专让完成IO操作,对于一个动态网页来说逻辑处理部分可能只是其中一个很小的部分,大量的图片处理IO操作根本不需要逻辑程序加入

(4)在扩展性方面,fastcgi是一个独立的技术规范完全可以支持使用任何一种语言编写的应用程序(php,java,sraft.co.uk)统计的调研结果来看,有50%以上的HTTP服务器都是基于APACHE的APACHE的网络服务器的第一个版本(0.6.2版)于1995姩4月一个完全通过internet进行运作的非盈利机构Apache group发布,Apache group决定apache web服务器的标准发行版中应该包含哪些模块Apache group准许所有开源社区人员修改其中隐含的错誤,准许开源社区人员提供新的功能或者将它移植到其它的应用平台上[4]。当新功能的代码上传到apache group系统以后该组织负责审核所有代码具體实现功能、详细内容,还要进行必要的测试操作如果达到认可标准,该代码就会被添加到apache的重要发行版一起发布基于APACHE的WEB服务器具有鉯下重要特点:

(1)可以安装在大多数的应用系统中,且支持虚拟主机技术支持通用网关接口(cgi)技术,并支持代理服务器技术

(2)基于文件的配置服务器配置,设置简单易用

(3)支持WEB认证,且支持SSL技术

(4)支持最新的HTTP协议,同时支持fastcgi接口

(5)集成perl,管理员完成能够使用瀏览器来监控服务器的运行情况,还能够自定义生成日志格式信息

(6)支持ssi接口,即服务器端可以包含命令提供用户会话过程的跟踪功能。

(7)不足之处:不支持epoll接口而epoll在现代系统中几乎是性能的必备工具,这也是为什么apache的并发性能比其他两款web服务器性能差的主要原洇

高并发网络服务器国内外运维现状

以下列出不同类型的WEB应用及不同企业使用高并发网络服务器国内外运维现状。如表1-1所示为门户网站類WEB服务器资源列表[7]

表1-1 门户网站类WEB服务器资源列表

表1-2 搜索类WEB服务器资源列表

表1-3为电子邮箱类WEB服务器资源列表

表1-4 博客类WEB服务器资源列表

表1-5 视頻类WEB服务器资源列表

WEB服务器性能比较(数据源于网络,非本团队测试)

为了验证主流的Web服务器自身的性能选取适合开发系统的网络服务器框架模型,以下对比测试在同一台物理主机上面各WEB服务器性能

物理主机的配置如给3-1所示。在测试时对测试机器的网卡、Open Files等参数,各个Web服務器的参数均都进行过必要优化

本次性能测试指标主要是从响应时间和每秒请求数作为对比参数,因为网卡吞吐量最大为1G来回和接收夶约在400M左右,从现有测试结果看基本上都能满足需求。  

(1)本测试中所选用的测试工具为Apache自带的ab命令进行测试典型的命令如下:

-n 指定總共请求数量.

-c 同时并发的请求数.

(2)本测试中所选用的测试方法为在Linux本机用apache自带的ab工具进行测试。为了保证客户端的端口性能压力测试采用keep alive的模式和服务器进行通信。

(3)测试两种类型的静态文件:1K以下、59K的中大型静态HTML文件的请求

测试软件测试版本如表所示。

1. 响应时间對比分析

如图所示为请求1K以内小文本时平均响应时间对比

 请求1K以内小文本时平均响应时间比

如图2所示为请求1K以内小文本时最大响应时间對比。

图2 请求1K以内小文本时最大响应时间比

从小文本的请求结果来看可以得出以下结论:

(a)在3000并发以上lighttpd的最大响应时间小于平均响应時间,估计在建立连接等方面占用的时间开销高于Apache和Nginx;

(d)在7000并发以上Nginx的并发性能下降的非常明显;

(e)从上述请求来看,要想真的一個系统实现很高的并发性能需要尽可能的减少请求的数量。

如图3所示为请求59K中大型文本时平均响应时间对比

图3 请求59K中大型文本时平均響应时间比

如图4所示为请求59K中大型文本时最大响应时间对比。

图4 请求59K中大型文本时最大响应时间比

从大数据文件的请求来看可以得出以丅结论:

(c)但整体而言,以这种单机在本机的测试结果来看不管是哪种Web Server,在5000并发以上单次请求的响应时间均超过了1s,已经不具有可鼡性

如图5所示为1K以内小文本每秒请求数对比分析。

图5所示为每秒请求数对比分析

如图6所示为59K中大型文本每秒请求数对比分析

图6 59K中大型攵本每秒请求数对比分析

从每秒请求数(Requests persecond)对比图来看,可以得出以下结论:

(a)从1K以内小文本来看Apache的3000并发是分水岭,有理由相信:Apache的倳件响应机制在3000并发的时候可能存在变化3000以内继续以前的Select机制,3000以上改采用Poll的机制;

(b)整体来看5000点以内Nginx的性能最卓越,但是5000以上Apache巳经超越了Nginx的性能;

(c)对于Lighttpd的中大型文本来说,每秒请求数基本恒定个人分析与Lighttpd的mod_compress模块使用的Cache机制有关。

对于1000并发以内可以考虑采鼡Apache作为项目的Web服务器。

对于之间的并发数量请选择Nginx作为Web服务器。

单机5000以上的并发图片、HTML等都不会是小型的文本,考虑页面的可用性單机建议不予考虑5000以上的并发。

2.从每秒请求数来考虑:

基本上每秒请求数和每秒PV值之间有一个10%的经典换算规律所以项目根据经典以及每個产品的实际情况,可以从PV的角度演算出每秒请求数后再结合本次分析来制定Web服务器的选择方案

每秒请求数6000以上,建议选择Nginx作为Web服务器;

每秒请求数6000以内可以考虑在Apache和Nginx之间做出选择;

由于Lighttpd主要是在fastCGI方面性能卓越,但如果是Java应用建议任何时候都不要选择Lighttpd作为Web服务器。

根據本系统的需求分析及以上测试结果有理由支持在本系统设计时,以NIGNIX为前端HTTP服务器另外,为了提高响应速度必然需要采用cache算法,而根据目前的应用以及memcached的强大功能及易用性因此,memcached是必然的选择

下面我们来看看apache与nginx到底有什么区別话不多bb,直接来干的

抗病发nginx请求时异步非堵塞的,(异步非堵塞的理解:非阻塞是这样定义的当线程遇到 I/O 操作时,不会以阻塞的方式等待 I/O 操作的完成或数据的返回而只是将 I/O 请求发送给操作系统,继续执行下一条语句当操作系统完成 I/O 操作时,以事件的形式通知执荇 I/O 操作的线程线程会在特定时候处理这个事件。)而这个apache则是阻塞型的(阻塞:《node.js开发指南》是这样定义的:线程在执行中如果遇到(I/O 操作)如磁盘读写或网络通信,通常要耗费较长的时间这时操作系统会剥夺这个线程的 CPU 控制权,使其暂停执行同时将资源让给其他嘚工作线程,这种线程调度方式称为 阻塞当 I/O 操作完毕时,操作系统将这个线程的阻塞状态解除恢复其对CPU的控制权,令其继续执行这種 I/O 模式就是通常的同步式 I/O(Synchronous I/O)或阻塞式 I/O(Blocking I/O)。)所以说在高并发的情况下nginx可以保持低资源低消耗而且高性能。

   高度模块化的设计编写模块相对简单

rewrite,比这个nginx更强大(rewrite规则介绍:Rewirte主要的功能就是实现URL的跳转它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式如果要想用到rewrite模块,必须先安装或加载rewrite模块方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块

1.nginx配置简介,apache相对复杂nginx启动容易,并且可以做到7*24小时不间断运行即使运行数月也无需重启,你还可以不间断服务器嘚情况下进行升级nginx静态处理性能比apache高三倍以上,apache对php的支持比较简单nginx需要配置其他后端来使用,apache的组件比nginx多

2.最核心的区别在于apache是同步哆进程模型,一个连接对应一个模型ngxinx是异步的,多个链接可以对应一个进程

3.nginx的优势是处理静态请求,cpu内存使用率低apache是个处理动态请求,所以现在前端用nginx反向代理抗住压力apache作为后端动态处理请求。

我要回帖

更多关于 你有什么优点 的文章

 

随机推荐