Apache、Lighttpd、Nginx 三种web服务器对比
简介
1. Apache
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache能取得如此成功并不足为奇:它免费、稳定且性能卓越;但Apache能取得如此佳绩的另一个原因是,当时互联网刚刚兴起时,Apache是第一个可用的Web应用服务器,人们没有其他的选择。
对于那些需要更强大的Web应用服务器(比如大小、可定制、响应速度、可扩展性等方面)的人而言,Apache明显不符合他们的要求,寻找Apache的替代者是更好的选择。
2. Lighttpd
Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。
3. Nginx(Ngwsx)
Nginx是十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器,Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题。
对比
|
server |
Apache |
Nginx |
Lighttpd |
|
Proxy代理 |
非常好 |
非常好 |
一般 |
|
Rewriter |
好 |
非常好 |
一般 |
|
Fastcgi |
不好 |
好 |
非常好 |
|
热部署 |
不支持 |
支持 |
不支持 |
|
系统压力比较 |
很大 |
很小 |
比较小 |
|
稳定性 |
好 |
非常好 |
不好 |
|
安全性 |
好 |
一般 |
一般 |
|
技术支持 |
非常好 |
很少 |
一般 |
|
静态文件处理 |
一般 |
非常好 |
好 |
|
Vhosts虚拟主机 |
支持 |
支持 |
支持 |
|
反向代理 |
一般 |
非常好 |
一般 |
|
Session sticky |
支持 |
不支持 |
不支持 |
|
量级 |
重量级 |
轻量 |
轻量 |
|
复杂度(安装、配置) |
较复杂 |
简单 |
简单 |
总结(静态资源)
Apache:
优点:
- Apache的兼容性和稳定性都是非常强
- Apache 的模块比 Nginx/Lighttpd丰富
- Apache在处理动态请求比Nginx/Lighttpd更有优势
缺点:
- 属于重量级web服务器(重量级主要是在软件包的大小上比较大,软件的耦合度大)
- 在速度、性能不及其他轻量级web服务器,并且消费内存较高。使用传统的select模型,比较稳定的Prefork模式为多进程模式,需要经常派生子进程。所以消耗的cpu等服务器资源比较大。
Lighttpd:
优点:
虚机的配置处理方式比 apache 直观,比Apache轻量
- 轻量级web服务器,cpu占用低,效能好,模块丰富,对fastcgi支持非常好。
- 支持高并发,和Nginx差不多,比apache性能高很多。
缺点:
- 稳定性没有Apache和Nginx高,bug相对较多
Nginx:
优点:
- 轻量级,比apache 占用更少的内存及资源
- 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
- 高度模块化的设计,编写模块相对简单
- 有Lighttpd的性能,且更稳定,没有其内存泄露问题;
- 处理静态文件,索引文件以及自动索引,打开文件描述符缓冲。
缺点:
- nginx处理动态请求是鸡肋,不如Apache;
建议方案:
Apache 后台服务器(主要处理php及一些动态请求);Nginx 前端服务器(高并发请求、静态资源、负载均衡、反向代理和前端Cache等)。
性能测试
在Linux下的性能评测见:http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html
在Windows下的性能评测见:http://down.chinaz.com/server/201202/1614_1.htm
从网友的实际评测结果来看,对静态资源访问的服务器还是Nginx最好。
Apache、Lighttpd、Nginx 三种web服务器对比的更多相关文章
- Tomcat、Apache、IIS这三种Web服务器来讲述3种搭建JSP运行环境的方法
一.相关软件介绍 1. J2SDK:Java2的软件开发工具,是Java应用程序的基础.JSP是基于Java技术的,所以配置JSP环境之前必须要安装J2SDK. 2. Apache服务器:Apache ...
- 转: 三大WEB服务器对比分析(apache ,lighttpd,nginx) (2008年的旧文,仅供参考之用)
from: http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html 三大WEB服务器对比分析(apache ,lighttp ...
- [转]三大WEB服务器对比分析(apache ,lighttpd,nginx)
原博文地址:http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html 一.软件介绍(apache lighttpd ngin ...
- 三大WEB服务器对比分析(apache ,lighttpd,nginx)
一.软件介绍(apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多 ...
- (转)三大WEB服务器对比分析(apache ,lighttpd,nginx)
ref : https://www.iteye.com/blog/hai0378-1860220 一.软件介绍(apache lighttpd nginx) 1. lighttpd Light ...
- 软件介绍(apache lighttpd nginx)
一.软件介绍(apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多 ...
- 一.软件介绍(apache lighttpd nginx)
一.软件介绍(apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多 ...
- 你真的了解如何将 Nginx 配置为Web服务器吗
阅读之前,建议先阅读初识 Nginx. 之后,我们来了解一下 Nginx 配置. 抽象来说,将 Nginx 配置为 Web 服务器就是定义处理哪些 URLS 和如何处理这些URLS 对应的请求.具体来 ...
- 常见的三种Web服务架构
常见的三种Web服务架构 转自http://www.cnblogs.com/bvbook/archive/2008/12/24/1360942.html 相互竞争的服务架构 The Competing ...
随机推荐
- Use LiveCD to acquire images from a VM
Forensic examiners usually acquire images from suspect's PC or Laptop. What if the target computer i ...
- Web前端性能优化——如何提高页面加载速度
前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个"Duang"的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒, ...
- Python3 字符串格式化
1.字符串的格式化: 按照统一的规格去输出成为一个新的字符串 2.字符串格式化的方法: 1)format方法 fomat()有两个参数位置参数和关键字参数用中括号括起来{ } #{0}{1}为位置参数 ...
- hive分区(partition)
网上有篇关于hive的partition的使用讲解的比较好,转载了:一.背景1.在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作.有时候只需要扫描表中关心的一部分数据, ...
- java实现最小生成树的prim算法和kruskal算法
在边赋权图中,权值总和最小的生成树称为最小生成树.构造最小生成树有两种算法,分别是prim算法和kruskal算法.在边赋权图中,如下图所示: 在上述赋权图中,可以看到图的顶点编号和顶点之间邻接边的权 ...
- 辩证看待 iostat
前言 经常做系统分析会接触到很多有用的工具,比如 iostat,它是用来分析磁盘性能.系统 I/O 的利器. 本文将重点介绍 iostat 命令的使用,并分析容易引起误解的几个指标. iostat i ...
- jQuery给input绑定回车事件
dataInput为Span元素ID <script type="text/javascript" src="Scripts/jquery-1.6.2.js&quo ...
- 通过Azure Powershell获取asm及arm虚拟机的配置信息
1.asm虚拟机可以使用类似如下Azure Powershell命令获取虚拟机的基本信息,包括发行版本,虚拟机名称及size[备注:虚拟机需要是使用平台image创建的] PS C:\Users\he ...
- 智能机器人chatbot论文集合
机器不学习 jqbxx.com-专注机器学习,深度学习,自然语言处理,大数据,个性化推荐,搜索算法,知识图谱 今年开始接触chatbot,跟着各种专栏学习了一段时间,也读了一些论文,在这里汇总一下.感 ...
- test for python socket
server: #!/usr/bin/python import socket import threading import time def tcplink(sock, addr): print ...