linux下几种web服务器对比

Linux下服务器的构建在当前网络上的使用,基本上能够基于如下几种: Apache 、 nginx 、lighttpd。根据Netcraft在最新的统计数据(下图)php

  Apache毫无疑问是占了一半以上的份额,相比Apache使用数量的减小,Nginx与lighttpd的占有量都在缓慢上升。前端

  由此本文将当前Linux下web服务器分为:LAMP 、 LNMP 以及 LLMP 三种构架。java

  LAMP(Linux + Apache + MySQL + PHP ) LAMP源于1998年,Michael Kunze为德国计算机杂志c’t写做的一篇关于自由软件如何成为商业软件替代品的文章时所创立,用来指代Linux 操做系统、Apache网络服务器、MySQL 数据库和PHP (Perl或Python)脚本语言的组合(由四种技术的开头字母组成)。这一术语很快就被市场接受,而且成为了开源软件业的一盏真正的明灯,如今依旧是大部分企业网站的基础构架。python

  次底层的Apache,是世界使用排名第一的Web服务器软件,因为其跨平台和安全性被普遍使用,是最流行的Web服务器端软件之一。有着多年的发展历史,Apache的扩展性丰富,稳定性很是好,同时却也存在着体积庞大、速度缓慢的缺点。linux

  LNMP(Linux + Nginx + MySQL + PHP )nginx

  LNMP是近些年才逐渐发展起来的构架,发展很是迅速,服务器以其轻巧快速而获得许多站长的青睐。git

  次底层的Nginx是一个小巧而高效的Linux下高性能Web和反向代理服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,两年半的运行时间,至关的稳定。Nginx特色在于其至关的稳定、功能丰富、安装配置简单、低系统资源。github

  LLMP(Linux + Lighttpd + MySQL + PHP )web

  相对来讲LLMP构架使用人群没有LAMP与LLMP的人多,可是LLMP以其高速轻巧仍是博得了很多站长的喜好。数据库

  次底层的Litespeed属于商业软件,不过免费版的Litespeed功能也很强大,特别是处理静态文件能力很是的好。可是Litespeed软件并不是开源,依靠一个团队的封闭开发,这一点就相对差不少了。

  对比总结:

  LAMP、LNMP、LLMP这三种构架就当前的网络来讲,LAMP无疑是胜出的,基本占据了一半多的市场。

  可是在面对服务器硬件资源不足、服务器的负载要求很高的状况下,LNMP是不错的选择,特别是我的博客或者小型网站,LNMP的配置相对简单,是能够知足要求的。或者在追求高性能服务器上,Nginx服务器确实值得考虑,至于LLMP构架的服务器,纵观网络,如今服务的支持性并很差,喜欢折腾学习的话能够选择。

  附:如今网络上还有一种LNAMP构架,也就是综合了nginx和Apache的优势,使用Apache负载PHP,nginx负责解析其余Web请求,使用nginx的rewrite模块,可是Apache端口不对外开放,Apache的许多模块均可以不加载减小资源。这个方法不错,可是配置比较麻烦。虽然已经出现一键安装包了,但也只针对Centos系统。



1. lighttpd

Lighttpd是一个具备很是低的内存开销,cpu占用率低,效能好,以及丰富的模块等特色。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。

Lighttpd使用fastcgi方式运行php,它会使用不多的PHP进程响应很大的并发量。

Fastcgi的优势在于:

·         从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统能够很轻易的丢弃,而后从新分配新的进程来运行逻辑.

·         从安全性上看, fastcgi和宿主的server彻底独立, fastcgi怎么down也不会把server搞垮,

·         从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理仍是留给宿主server, 这样宿主server能够一心一意做IO,对于一个普通的动态网页来讲, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理彻底不须要逻辑程序的参与(注1)

·         从扩展性上讲, fastcgi是一个中立的技术标准, 彻底能够支持任何语言写的处理程序(php,java,python...)

2.apache

apache是世界排名第一的web服务器, 根据netcraft(www.netsraft.co.uk)所做的调查,世界上百分之五十以上的web服务器在使用apache.

1995年4月, 最先的apache(0.6.2版)由apache group公布发行. apache group 是一个彻底经过internet进行运做的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工做. 当新的代码被提交给apache group时, 该团体审核它的具体内容, 进行测试, 若是认为满意, 该代码就会被集成到apache的主要发行版中.

apache 的特性:

1) 几乎能够运行在全部的计算机平台上.

2) 支持最新的http/1.1协议

3) 简单并且强有力的基于文件的配置(httpd.conf).

4) 支持通用网关接口(cgi)

5) 支持虚拟主机.

6) 支持http认证.

7) 集成perl.

8) 集成的代理服务器

9) 能够经过web浏览器监视服务器的状态, 能够自定义日志.

10) 支持服务器端包含命令(ssi).

11) 支持安全socket层(ssl).

12) 具备用户会话过程的跟踪能力.

13) 支持fastcgi

14) 支持java servlets

3.nginx

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.

Nginx以事件驱动的方式编写,因此有很是好的性能,同时也是一个很是高效的反向代理、负载平衡。其拥有匹配 Lighttpd的性能,同时尚未Lighttpd的内存泄漏问题,并且Lighttpd的mod_proxy也有一些问题而且好久没有更新。可是Nginx并不支持cgi方式运行,缘由是能够减小所以带来的一些程序上的漏洞。因此必须使用FastCGI方式来执行PHP程序。

nginx作为HTTP服务器,有如下几项基本特性:

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.

无缓存的反向代理加速,简单的负载均衡和容错.

FastCGI,简单的负载均衡和容错.

模块化的结构。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。若是由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理能够并行运行,而不须要相互等待。

Nginx专为性能优化而开发,性能是其最重要的考量,实现上很是注重效率。它支持内核Poll模型,能经受高负载的考验,有报告代表能支持高达 50,000个并发链接数。

Nginx具备很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速链接时,也极可能会致使服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显很是缓慢了。而Nginx采起了分阶段资源分配技术,使得它的CPU与内存占用率很是低。nginx官方表示保持10,000个没有活动的链接,它只占2.5M内存,因此相似DOS这样的***对nginx来讲基本上是毫无用处的。就稳定性而言,nginx比lighthttpd更胜一筹。

Nginx支持热部署。它的启动特别容易, 而且几乎能够作到7*24不间断运行,即便运行数个月也不须要从新启动。你还可以在不间断服务的状况下,对软件版本进行进行升级。


注:在相对比较大的网站,节约下来的服务器成本无疑是客观的。而有些小型网站每每服务器很少,若是采用 Apache 这类传统 Web 服务器,彷佛也还能撑过去。但有其很明显的弊端: Apache 在处理流量爆发的时候(好比爬虫或者是 Digg 效应) 很容易过载,这样的状况下采用 Nginx 最为合适。

建议方案:

Apache 后台服务器(主要处理php及一些功能请求 如:中文url)

Nginx  前端服务器(利用它占用系统资源少得优点来处理静态页面大量请求)

Lighttpd 图片服务器

整体来讲,随着nginx功能得完善将使他成为从此web server得主流。


四.各大网站WEB服务器资源列表

网站名操做系统   web服务器

1.门户网站类:

搜狐     LINUX     apache 1.3.37

新浪     LINUX     apache 2.0.54

迅雷     LINUX     nginx 0.6.31

163      LINUX     apache 2.2.6

2.搜索类

百度      unknown   BWS 1.0

Google   linux        gws

Sougou   FreeBSD    apache 2.2.4

Hao123   linux        apache 2.2.4

4. 电子邮箱类

126        linux         apache

Hotmail    win2003     microsoft-IIS 6.0

新浪邮箱    F5 Big-IP    apache 2.2.8

263        linux         apache 2.2.6

5. 博客类

新浪博客    linux          nginx 0.5.35

搜狐博客    linux          nginx

迅雷博客    linux          nginx 0.6.32

天涯博客    F5 Big-IP      Microsoft-IIS/5.0

6.视频类

优酷         linux          apache

土豆         linux          apache

Ku6         linux          apache

六间房       linux          nginx 0.6.14




一、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 模型的原理做的一个假设,真正的应用仍是须要实测了再说的。 二、做为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发链接,体现更高的效率,这点使 Nginx 尤为受到虚拟主机提供商的欢迎。在高链接并发的状况下,Nginx是Apache服务器不错的替代品: Nginx在美国是作虚拟主机生意的老板们常常选择的软件平台之一. 可以支持高达 50,000 个并发链接数的响应, 感谢Nginx为咱们选择了 epoll and kqueue 做为开发模型.Nginx做为负载均衡服务器: Nginx 既能够在内部直接支持 Rails 和 PHP 程序对外进行服务, 也能够支持做为 HTTP代理 服务器对外进行服务. Nginx采用C进行编写, 不管是系统资源开销仍是CPU使用效率都比 Perlbal 要好不少.做为邮件代理服务器: Nginx 同时也是一个很是优秀的邮件代理服务器(最先开发这个产品的目的之一也是做为邮件代理服务器), Last.fm 描述了成功而且美妙的使用经验.Nginx 是一个安装很是的简单 , 配置文件很是简洁(还可以支持perl语法), Bugs 很是少的服务器: Nginx 启动特别容易, 而且几乎能够作到7*24不间断运行,即便运行数个月也不须要从新启动. 你还可以不间断服务的状况下进行软件版本的升级 .三、Nginx 配置简洁, Apache 复杂Nginx 静态处理性能比 Apache 高 3倍以上Apache 对 PHP 支持比较简单,Nginx 须要配合其余后端用Apache 的组件比 Nginx 多如今 Nginx 才是 Web 服务器的首选 四、最核心的区别在于apache是同步多进程模型,一个链接对应一个进程;nginx是异步的,多个链接(万级别)能够对应一个进程 五、nginx处理静态文件好,耗费内存少.但无疑apache仍然是目前的主流,有不少丰富的特性.因此还须要搭配着来.固然若是能肯定nginx就适合需求,那么使用nginx会是更经济的方式. 六、从我的过往的使用状况来看,nginx的负载能力比apache高不少。最新的服务器也改用nginx了。并且nginx改完配置能-t测试一下配置有没有问题,apache重启的时候发现配置出错了,会很崩溃,改的时候都会很是当心翼翼如今看有好多集群站,前端nginx抗并发,后端apache集群,配合的也不错。 七、nginx处理动态请求是鸡肋,通常动态请求要apache去作,nginx只适合静态和反向。 八、從我個人的經驗來看,nginx是很不錯的前端服務器,負載性能很好,在老奔上開nginx,用webbench模擬10000個靜態文件請求绝不吃力。apache對php等語言的支持很好,此外apache有強大的支持網路,發展時間相對nginx更久,bug少可是apache有先天不支持多核心處理負載雞肋的缺點,建議使用nginx作前端,後端用apache。大型網站建議用nginx自代的集群功能 九、Nginx优于apache的主要两点:1.Nginx自己就是一个反向代理服务器 2.Nginx支持7层负载均衡;其余的固然,Nginx可能会比apache支持更高的并发,可是根据NetCraft的统计,2011年4月的统计数据,Apache依然占有62.71%,而Nginx是7.35%,所以总得来讲,Aapche依然是大部分公司的首先,由于其成熟的技术和开发社区已经也是很是不错的性能。 十、你对web server的需求决定你的选择。大部分状况下nginx都优于APACHE,好比说静态文件处理、PHP-CGI的支持、反向代理功能、前端Cache、维持链接等等。在Apache+PHP(prefork)模式下,若是PHP处理慢或者前端压力很大的状况下,很容易出现Apache进程数飙升,从而拒绝服务的现象。 十一、能够看一下nginx lua模块:https://github.com/chaoslaw...apache比nginx多的模块,可直接用lua实现apache是最流行的,why?大多数人懒得更新到nginx或者学新事物 十二、对于nginx,我喜欢它配置文件写的很简洁,正则配置让不少事情变得简单运行效率高,占用资源少,代理功能强大,很适合作前端响应服务器 1三、Apache在处理动态有优点,Nginx并发性比较好,CPU内存占用低,若是rewrite频繁,那仍是Apache吧        

相关文章
相关标签/搜索