PHP服务器Apache与Nginx的对比分析

- 编辑:admin -

PHP服务器Apache与Nginx的对比分析

  Apache与Nginx的优缺点相比

  。

  1、nginx相对于apache的优势:

  。

   轻量,一样起web 服务项目,比apache 占有越来越少的运行内存及資源

   抗高并发,nginx 解决要求是多线程非堵塞的,而apache 则是堵塞型的,在分布式系统下nginx 能维持低資源低耗性能卓越

   高宽比模块化设计的设计方案,撰写控制模块相对性简易

   小区活跃性,各种各样性能卓越控制模块荣誉出品快速啊

   apache 相对性于nginx 的优势:

   rewrite ,比nginx 的rewrite 强劲

   控制模块很多,基本上想起的都能够寻找

   少bug ,nginx 的bug 相对性较多

   超稳定

   存有便是原因,一般来说,必须特性的web 服务项目,用nginx 。假如不用特性但求平稳,那么就apache 吧。后面一种的各种各样程序模块完成得比前面一种,比如ssl 的控制模块就比前面一种好,可配备项多。这儿要留意一点,epoll(freebsd 上是 kqueue )互联网IO 实体模型是nginx 解决特性高的压根原因,但并非是全部的状况下全是epoll 节节胜利的,假如自身出示静态数据服务项目的就仅有寥寥无几好多个文档,apache 的select 实体模型也许比epoll 更性能卓越。自然,这仅仅依据互联网IO 实体模型的基本原理作的一个假定,真实的运用或是必须评测了再聊的。

   2、做为 Web 网络服务器:对比 Apache,Nginx 应用越来越少的資源,适用大量的高并发联接,反映高些的高效率,这一点使 Nginx 特别是在遭受云虚拟主机服务提供商的热烈欢迎。在高连接高并发的状况下,Nginx是Apache网络服务器非常好的替代品:Nginx是国外做云虚拟主机生意的老总们常常挑选的软件系统之一。 可以适用达到 50,000 个高并发线程数的回应, 谢谢Nginx为大家挑选了 epoll and kqueue 做为开发设计实体模型.

   Nginx做为web服务网络服务器: Nginx 既能够在內部立即适用 Rails 和 php 程序流程对外开放开展服务项目, 还可以适用做为 HTTP代理商 网络服务器对外开放开展服务项目. Nginx选用C开展撰写, 无论是服务器资源花销或是CPU应用高效率都比 Perlbal 好些许多.

   做为电子邮件服务器代理: Nginx 另外也是一个十分出色的电子邮件服务器代理(最开始开发设计这一商品的目地之一也是做为电子邮件服务器代理), Last.fm 叙述了取得成功而且美好的应用工作经验.

   Nginx 是一个安裝十分的简易 , 环境变量十分简约(还可以适用perl英语的语法), Bugs 很少的网络服务器: Nginx 运行尤其非常容易, 而且基本上能够保证7*24连续运作,即便运作多个月也不用重启. 你要可以连续服务项目的状况下开展软件版本的升級 .

   3、Nginx 配备简约, Apache 繁杂

   Nginx 静态数据解决性能提升 Apache 高 3倍之上

   Apache 对 PHP 适用非常简单,Nginx 必须相互配合别的后端开发用

   Apache 的部件比 Nginx 多

   如今 Nginx 才算是 Web 网络服务器的优选

   4、最关键的差别取决于apache是同歩多进程实体模型,一个联接相匹配一个过程;nginx是多线程的,好几个联接(万等级)能够相匹配一个过程

   5、nginx解决静态数据文档好,消耗运行内存少.但毫无疑问apache依然是现阶段的流行,有很多丰富多彩的特点.因此 还必须配着来.自然假如能明确nginx就合适要求,那麼应用nginx会是更经济发展的方法.

   6、从本人往日的应用状况看来,nginx的负荷工作能力比apache高许多。全新的网络服务器也改成nginx了。并且nginx改好配备能-t测试一下配备是否有难题,apache重新启动的情况下发觉配备出错了,会很奔溃,改的情况下都是会十分提心吊胆如今看有许多群集站,前面nginx抗高并发,后端开发apache群集,相互配合的也非常好。

   7、nginx解决动态性要求是可有可无,一般动态性要求要apache去做,nginx只合适静态数据和反方向。

  8、从我个人的经验来看,nginx是非常不好的前面服务器,特性非常好,经常跑nginx,webbench10000个模拟文件绝对不费力。apache对php等语言的适用非常好,除此之外apache还有强大的适用网路,发展时间比nginx长,bug少,但apache有先天性不兼容的重要处理添加肋的缺点,建议使用nginx作为前面,后面使用apache。大中型網站建議用nginx自代的群集作用

   9、Nginx好于apache的关键二点:1.Nginx自身便是一个反向代理网络服务器 2.Nginx适用于7层网络服务;其他自然,Nginx很可能比apache更适用于高并发性,但根据NetCraft的统计分析,2011年4月的数据统计,Apache仍占62。71%,而Nginx是7.35%,因而总的来说,Aapche仍然是绝大多数企业的最先,由于其完善的技术性和开发设计小区早已也是十分非常好的特性。

   10、你对web server的要求决策自身情况了。绝大多数状况下nginx都好于APACHE,例如静态数据文档解决、PHP-CGI的适用、反向代理作用、前面Cache、保持联接这些。在Apache+PHP(prefork)方式下,假如PHP解决慢或是前面压力非常大的状况下,非常容易发生Apache过程数飙涨,进而拒绝服务攻击的状况。

   11、能够看一下nginx lua控制模块:比nginx多的控制模块,可立即用lua完成apache是最时兴的,why?大部分人不想升级到nginx或是学新生事物

   12、针对nginx,我很喜欢它环境变量写的很简约,正则表达式配备让许多事儿越来越简易运作高效率,占有資源少,代理商功能齐全,很适合做前面回应网络服务器

  13、Apache有解决动态性的优点,Nginx高并发性好,CPU内存占有率低,如果rewrite频繁的话,Apache

  。

  Nginx的优点是:

  。

   工作中在互联网的7层以上,能够对于http运用做一些分离的对策,例如对于网站域名、文件目录构造,它的正则表达式标准比HAProxy更加强劲和灵便,这也是它现阶段普遍时兴的关键缘故之一,Nginx仅凭这一点可运用的场所就远超过LVS了。 ;Nginx对互联网可靠性的依赖性很小,理论上可以通过ping进行负载作用,这也是它的优势之一;另一方面,LVS对互联网可靠性的依赖性很大,这一点自己深有感触;Nginx安装配置非常简单,检测方便,基本上可以用日志打印错误。而 LVS的配置、检测则需要较长的时间, LVS对网络的依赖性较大。 ;能承受高负荷工作压力和稳定性,在硬件配置不低的情况下,一般能支撑几万元的并发量,负荷比LVS相对较小。Nginx能够根据端口检测到网络服务器內部的常见故障,例如依据网络服务器解决网页页面回到的状态码、请求超时这些,而且会把回到不正确的要求再次递交到另一个连接点,但是在其中缺陷便是不兼容url来检验。例如客户已经提交一个文档,而解决该提交的连接点恰好在提交全过程中发生常见故障,Nginx会把提交切到另一台网络服务器处理完毕,而LVS就立即断开了,如果是提交一个非常大的文档或是很重要的文档得话,客户很有可能会因而而不满意。 ;Nginx不仅是一款优秀的负载均衡器/反向代理手机软件,也是一款功能齐全的网站服务器。LNMP也是近些年十分时兴的web构架,在高总流量的自然环境中可靠性也很好。 ;Nginx现在作为Web的反向缓存文件越来越成熟,速度比传统的Squid网络服务器快,可以考虑作为反向代理网络加速器使用。 ;Nginx可以作为中高层反向代理应用。在这方面,Nginx大多是无敌的。只有lighttpd才能与Nginx进行比较。但是lighttpd在现阶段并没有保证Nginx的完全功能,配置也不那么清晰,最易读,社区材料也远远不活跃。Nginx也可做为静态页面和图片服务器,这些方面的特性也无敌人。也有Nginx社区十分活跃性,第三方控制模块也许多。Nginx的缺陷是:

   Nginx仅能适用http、https和Email协议书,那样就在应用领域上边小些,这个是它的缺陷。对后端开发网络服务器的健康体检,只适用根据端口号来检验,不兼容根据url来检验。不兼容Session的立即维持,但能根据ip_hash来处理。