nginx lighttpd 为啥在高并发状态下比apache要有效率的多
这么说吧,nginx、lighttpd、apache、iis都支持php fastcgi,其实在fastcgi模式运行对服务器程序的要求就小了,这几种服务器比拼的就是个人能力了。
1、稳定性,这里iis最差,出了问题还不易解决
2、吞吐能力,nginx吞吐能力最强,lighttpd其次,apache适中,iis就不评论了
3、i/o能力,这里主要讲硬盘的,lighttpd压力最小,nginx最差,apache适中,iis不评论不用asp完全没必要用iis。
4、静态文件处理能力,所谓静态文件是指.js、.css等不常变化的文件,也包括网站程序生成好的.htm或.html文件,也包括图片文件,如果您的站是纯静态文件为主,那nginx是最好的选择,lighttpd其次,为什么呢,因为nginx有很强大的缓存能力,这点就对于纯静态文件站就可以弥补i/o读取过高的缺陷。如果您的站是图片站或视频站,lighttpd是个好选择,当然apache还是适中。
5、动态文件处理能力,所谓动态就是服务器端运行的程序、网页、组件,它们会随不同客户、不同时间,往返不同的网页,所有动起来的组件或文件,比如通过某php文件对数据库进行操作,这里就需要一个能快速释放i/o压力的服务器端程序,比如lighttpd,这里apache还是适中,nginx在错误的缓存设置或无设置情况下会有过高的i/o压力。
6、并发能力,所谓的并发能力实际上是指php的能力,现在基本都用在用fastcgi模式,lighttpd开始就是用这个模式用自身的spawn-fcgi来控制fastcgi,后来更新后直接支持fastcgi,也是让其在某时间段大火。nginx最初nginx要用lighttpd的spawn-fcgi来控制php-cgi,也在后来因为有php-fpm,并且php5.3及以后版本可以很方便的使用,nginx可以更好的运用并控制php-cgi。至于apache更有经典的模块方式和后来的fastcgi模式。有了fastcgi模式,服务器程序压力就转移了,php并发全凭php-cgi.exe多少和服务器内存、cpu来决定,服务器程序要素降到第二位,这里能供起大并发就要看谁的吞吐能力、动静处理、i/o压力处理能力强了。
所以您选哪个服务器程序,全凭以上6点。
当然我还要补充,为什么nginx这么流行,甚至淘宝这样的大站还要根据nginx定制自己的服务器版本。
nginx之流行,与其官方支持中文站和有直接在windows下运行的版本有必然联系,N多的服务器用windows,这种系统是我们打小接受教育开始就使用的,这已经刻在我们骨子里了,不是以后专业或职业要求或者抱着玩玩的需求,谁会去用unix、linux之类的系统,再说很多站长的能力也是有限,给他个winows系统他能玩的很熟,给他个纯命令的unix可能就懵比了,可能需要很久的时间来学习和改掉windows上的习惯,虽然以后说不定也会爱上打命令,但是从管理效率上windows是要高出一大截。
对windows的直接支持是apache经久不衰的秘诀。
但是lighttpd后来的版本却不再直接支持windows,对中文的支持也从来没有,因为它还没有意识到对中文的支持能带来多少好处,所以近几年用lighttpd的站就少了,lighttpd差吗,内存泄漏问题还存在吗,这都是很久很久的历史了,这货用起来真不比nginx差。
wordpress有了官方中文支持后击垮了多少国内博客程序,godaddy官方支持中文后从国内多拉到了多少新客户。国内的站长有能力也愿意出资金让自己的站跑的更稳更快,界面更好,体验更好,这个老外榆木疙瘩脑袋就是想不通啊。
当然nginx除了出色能力也有一个秘诀,就是多进程模式,就像您使用360浏览器一样,就算只开一个网页,进程中也会有多个360se.exe。nginx也是如此,启动nginx也会有多个nginx.exe当然数量由您来决定,这是也是它能大吞吐的原因。当然lighttpd也是典型的多进程服务器,它与nginx能力是不相伯仲的,nginx引以自豪的反向代理、缓存、静态处理能力,它都可以,对php fastcgi控制真的是不差,但是它以后可能就死在不支持中文和win上。apache之所以被后来者拉下神坛,也是与其单进程多线程有管,一个进程已多线程方式处理大流量,势必会造成这个进程占用过高,占用过高难免不会造成进程瘫痪,nginx瘫掉一个进程还有多个不会整站垮,但是apache却会。当然如果您的站访问量不是很大,日千ip以内,其实就无所谓用哪个服务器了。
不废话了,就说这么多吧,10年青菜站长飘过,本文纯手打,喜欢我废话的话,可以常来我的博客http://hi.ys166.com,也欢各位拍砖。自打百度空间关闭,停了几年,但是还是念念不忘写博客,用了几个免费博客难以找回当年的情怀,就只能自己建博客了~