Apache
它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它免费、稳定且性能卓越,是最早可用的Web应用服务器;
Lighttpd
- Lighttpd 是一个德国人领导的开源Web服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。
- 是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。是众多OpenSource轻量级的web server中较为优秀的一个。
- 支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。
Nginx
- Nginx(engine x)是一个高性能的Web服务器和反向代理服务器,也可以作为邮件代理服务器;
- Nginx是由俄罗斯人采用C语言开发编写的,其语言配置中就是默认俄罗斯文,公布于2004年
- Nginx 专为性能优化而开发,占有内存少,并发处理能力强,以高性能、低系统资源消耗而闻名,Nginx官方测试为5W并发请求;
- 十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器,Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题。
- 有着海量的支持,有着高效的性能处理能力,细到内存中每个字节的去节省空间的空间管理,适用于多种操作系统的代码支持,
- 当前 Ngnix 美中不足之处是相关的文档和用户经验都还是很欠缺,用户之间还很难做到可借鉴性的交流。
比较
server | Apache | Nginx | Lighttpd |
---|---|---|---|
server | Apache | Nginx | Lighttpd |
Proxy代理 | 非常好 | 非常好 | 一般 |
Rewriter | 好 | 非常好 | 一般 |
Fastcgi | 不好 | 好 | 非常好 |
热部署 | 不支持 | 支持 | 不支持 |
系统压力比较 | 很大 | 很小 | 比较小 |
稳定性 | 好 | 非常好 | 不好 |
安全性 | 好 | 一般 | 一般 |
技术支持 | 非常好 | 很少 | 一般 |
静态文件处理 | 一般 | 非常好 | 好 |
Vhosts虚拟主机 | 支持 | 支持 | 支持 |
反向代理 | 一般 | 非常好 | 一般 |
Session sticky | 支持 | 不支持 | 不支持 |
量级 | 重量级 | 轻量 | 轻量 |
复杂度(安装、配置) | 较复杂 | 简单 | 简单 |
各自优缺点比较 总结(静态资源)
Apache
-
优点
- Apache的兼容性和稳定性都是非常强
- Apache 的模块比 Nginx/Lighttpd丰富
- Apache在处理动态请求比Nginx/Lighttpd更有优势
-
缺点
- 属于重量级web服务器(重量级主要是在软件包的大小上比较大,软件的耦合度大)
- 在速度、性能不及其他轻量级web服务器,并且消费内存较高。使用传统的select模型,比较稳定的Prefork模式为多进程模式,需要经常派生子进程。所以消耗的cpu等服务器资源比较大
-
建议方案
- 后台服务器(主要处理php及一些功能请求,如:url)
Lighttpd
-
优点
- 虚机的配置处理方式比 apache 直观,比Apache轻量
- 轻量级web服务器,cpu占用低,效能好,模块丰富,对fastcgi支持非常好。
- 支持高并发,和Nginx差不多,比apache性能高很多。
-
缺点
- 稳定性没有Apache和Nginx高,bug相对较多
-
建议方案
- 图片服务器
Nginx
-
优点
- 轻量级,比apache 占用更少的内存及资源
- 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
- 高度模块化的设计,编写模块相对简单
- 有Lighttpd的性能,且更稳定,没有其内存泄露问题
- 处理静态文件,索引文件以及自动索引,打开文件描述符缓冲。
-
缺点
- nginx处理动态请求是鸡肋,不如Apache
-
建议方案
- 前端服务器(利用他占有系统资源少的优势来处理静态页面大量请求)
总体来说,如果不确定应该用什么服务器,那就应该用Apache,
但是稍微可以配置多个服务的情况下,做一个Nginx在最前端,然后把需要的功能转发给Apache是最好的选择,如果你打算跑fcgi,Lighttpd是不二的选择;如果你打算做图片服务器,独立的Lighttpd也是很好的选择
现在国内 Nginx 的用户越来越多了,多数拥抱 Nginx 的网站都钟意其优异的性能表现,如果是相对比较大的网站,节约下来的服务器成本无疑是客观的。而有些小型网站往往服务器不多,如果采用 Apache 这类传统 Web 服务器,似乎也还能撑过去。但个人觉得有其很明显的弊端: Apache 在处理流量爆发的时候(比如爬虫或者是 Digg 效应) 很容易过载,这样的情况下采用 Nginx 不失为大胆而有效的尝试。