Apache与Nginx的优缺点比较与选择
Apache是由伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发。此后,Apache 被开放源代码团体的成员不断的发展和加强。目前可以说是世界使用排名第一的Web服务器软件。世界上大多数网站仍运行着Apache系统。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。由于其出色的性能,Nginx在世界范围内受到了越来越多人的关注,更是被阿里巴巴旗下的淘宝网内部广泛使用。
今天,就针对Apache与Nginx的各自的优缺点进行比较,让大家在Apache与Nginx两者的选择时有一个比较与分析。
一、Apache与Nginx的简单比较
1、Nginx相对于Apache的优点
轻量级,同样web 服务,比apache占用更少的内存及资源 ;
抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下Nginx更能保持低资源、低消耗、高性能;
高度模块化的设计,编写模块相对简单;
社区活跃,各种高性能模块出品迅速,而Appche在社区活跃度上就相对低迷,这点很像博客程序Z-blog与WordPress;
2、Apache 相对于Nginx 的优点
Rewrite比Nginx的Rewrite要强大不少;
模块超多,基本想到的都可以找到;
更少Bug,而Nginx的BUG则相对较多。
Apache在稳定性在比Nginx要好。
三、Apache与Nginx的详细比较
1、性能与稳定性的比较
一般来说,如果你对Web服务的性能需求大于稳定性,建议选用Nginx 。反之,如果您对Web服务稳定性的需求大于性能,那就选择Apache 。Apache的各种功能模块比Nginx要多要好,例如现在很流行的SSL的模块就比Nginx要好,可配置项也多。
这里要注意一点,epoll(freebsd上是kqueue)模型是Nginx处理性能高的根本理由,但并不是所有的情况下都是epoll大获全胜的,如果本身提供静态服务的就文件相对较少,Apache的select模型或许比epoll更高性能。当然,这只是根据网络IO模型的原理作的一个假设,真正的应用还是需要实测了再说的。
2、不同使用环境的比较
作为Web服务器:相比Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使Nginx尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,Nginx是Apache服务器不错的替代品。在美国Nginx是虚拟主机服务提供商首选的软件平台之,毕竟在同等资源下,Nginx能够支持高达 50,000 个并发连接数的响应,这才给了广大虚拟主机商能够在不限制并发连接数有了宣传的底气。
作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP程序对外进行服务, 也可以支持作为HTTP代理服务器对外进行服务。 Nginx采用C语言进行编写, 不论是系统资源开销还是CPU使用效率都比Perlbal要好很多。
作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),目前不少知名的企业都采用Nginx作为邮件代理服务器。而Apache。我知道的好像只有Apache James,接触过,没有使用过。
3、配置与扩展性的比较
Nginx配置简洁, Apache复杂;
Nginx静态处理性能比Apache高3倍以上;
Apache对PHP支持比较简单,Nginx需要配合其他后端用;
Apache 的组件比 Nginx 多;
4、进程模型的比较
Apache与Nginx最核心的区别在于Apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程。在 Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache进程数飙升,从而拒绝服务的现象。
5、静态处理上的比较
相对于Apache,Nginx处理静态文件好,耗费内存少,在相同的配置投入上,Nginx是更经济的方式。
6、前端与后端的比较
Apache有先天不支持多核心处理负载鸡肋的缺点,陈德馨博客个人建议使用Nginx做前端,后端用Apache。如果你的是一个大型网站的话,可以采用Nginx自代的集群功能。
7、负载与并发的比较
从个人过往的使用情况来看,Nginx的负载能力比Apache高很多。最新的服务器也改用Nginx了。而且Nginx改完配置后可以测试一下配置有没有问题,而Apache重启的时候发现配置出错了,会很崩溃,改的时候都需要非常小心,现在好多集群站点采用的方案是:前端Nginx抗并发,后端Apache集群。
8、动态与静态处理的比较
Nginx处理动态请求是鸡肋,一般动态请求要Apache去做,Nginx更适合静态和反向。
通过以上针对Apache与Nginx的优缺点比较,相信您对于是选择Apache还是选择Nginx已经有了一定比较明确的方向了。
钭冰清瘟: Apache 和 Nginx 是世界上最通用的两大开源Web服务器.他们正为超过50%互联网流量传输提供服务,两种解决方案都能处理各种的工作场景,并与其他软件协同工作,从而提供完善的Web技术栈.尽管 Apache 和 Nginx 有许多共通的特性,...
纳雍县15113592978: lighttpd,apache,nginx相比,各有什么优势与缺点 - ?
钭冰清瘟: 展开全部1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃.
纳雍县15113592978: nginx和Apache相比怎么样啊,好用么,有经验的给回答一下啊. - ?
钭冰清瘟: nginx相对于apache的区别是: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简...
纳雍县15113592978: tengine和apache的区别 - ?
钭冰清瘟: tengine是淘宝根据nginx源码,根据自身业务改造而成的,它是完全兼容nginx的,你如果想明白,应该首先了解清楚nginx与apache的区别.Apache与Nginx的优缺点比较 1.nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用...
纳雍县15113592978: nginx比apache好多少? - ?
钭冰清瘟: 相比apache,nginx是下一代的httpserver产品,更轻量级,且消除了C10K(即一万并发访问)的问题.因此,很多追求新鲜玩意的人及公司,都在不同程度地将apache替换为nginx来使用.但apache至今依然是部署量排名第一的http server.
纳雍县15113592978: nginx和apache哪个比较好呢??
钭冰清瘟: nginx要比apache略强一点.
纳雍县15113592978: Linux系统下的Apache和Nginx 哪个服务器环境更好些??
钭冰清瘟: NGINX对静态页面的处理能力远远胜于APACHE,但对动态支持不好. NGINX的反向代理能力很强!可以把静态的页面交给NGINX处理,动态的反向指到APACHE,俩者配合,才是最高效的!如果你的论坛在线不高的话,直接用APACHE就够了.
纳雍县15113592978: iis apache nginx的优缺点是什么,该如何选择哪种架构 - ?
钭冰清瘟: 1,iis 不用说如果你程序是asp的你就只能选择iis 2,apache 这个没得说,优点很明显,稳定,强大,php可以用module的方式,如果你装了xcache,没得说apache是你最好的选择.不过apache有个很大的缺点,ddos的时候支持的并发数非常低 3,nginx 这个重点是反向代理,如果你做镜像或者网站静态页面的而且流量比较大,用nginx分流是个不错的选择,不过php只能用fastcgi的方式跑,缺点就是php装了xcache他每个fastcgi的进程里面的缓存都是独立的,有点浪费资源的感觉,优点是ddos的时候这3个服务器之中他是最好的,并发数支持最大.
纳雍县15113592978: 单独使用NGINX+PHP好还是NGINX+APACHE+PHP好 - ?
钭冰清瘟: 1. 能用 nginx 的地方就不要用 apache: nginx 跟 apache 相比,优势在并发能力上,本来在低并发的情况下也无所谓,但马太效应已经出现, nginx 在功能/灵活/运维便利程度上已经超过 apache2. 跟 nginx 搭配就是 php-fpm 效果最好了
纳雍县15113592978: nginx php 和apache php 哪个性能更高 - ?
钭冰清瘟: apache2.0--apache2.2单位进程占用的内存确实比nginx+php高,似乎网上的博文只比较同等内存如何如何,如果内存足够大,但cpu、硬盘能力有限时,结果又怎么样呢?现在内存很便宜,我们可以直接上它几十个G.一个好消息,apache2.4...