开源的web server 比较

唐兴思
2023-12-01

From : http://www.hzqbbc.com/blog/arch/2005/05/lighttpdthttpds.html

国内绝大部分的web server不是IIS就是Apache,而论市场占有率,我认为Apache是大赢家了,至少是占据了半壁江山。

但除了IIS/Apache外,其实我们有很多选择,对于高负载/大并发的网站而言,高性能、轻量级的web server是一剂良药。最近手头一台Server 的负载太高,居然将swap吃光导致机器非常缓慢,后来一查,原来是Apache耗掉了几乎所有资源,当时apache进程已有9XX个了。

于是用轻量级的web server替换掉apache就进入了日程表。这里顺带介绍一下这些可选的对象:
lighttpd | thttpd | shttpd

lighttpd

官方主页:www.lighttpd.net
Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。

lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。

在google搜索了一下,简体中文介绍lighttpd的文章几乎没有,大多数都是台湾同胞的Big5内容。因此在接下来的时间里,想好好写一篇介绍lighttpd,以及简单的benchmark的文章。

实用起来lighttpd确实非常不错,上文提到的apache overload的问题,用lighttpd就完全解决了。apache主要的问题是密集并发下,不断的fork()和切换,以及较高(相对于lighttpd而言)的内存占用,使系统的资源几尽枯竭。而lighttpd采用了Multiplex技术,代码经过优化,体积非常小,资源占用很低,而且反应速度相当快。

利用apache的rewrite技术,将繁重的cgi/fastcgi任务交给lighttpd来完成,充分利用两者的优点,现在那台服务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是2个数量级!

thttpd

官方网站:http://www.acme.com/software/thttpd/
thttpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,在其官方网站上有一个与其他web server(如Apache, Zeus等)的对比图+Benchmark,可以参考参考。此外,thttpd 也类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。

Thttpd支持多种平台,如FreeBSD, SunOS, Solaris, BSD, Linux, OSF等。对于小型web server而言,速度快似乎是一个代名词,通过官方站提供的Benchmark,可以这样认为:thttpd至少和主流的web server一样快,在高负载下更快,因为其资源占用小的缘故。

Thttpd还有一个较为引人注目的特点:基于URL的文件流量限制,这对于下载的流量控制而言是非常方便的。象Apache就必须使用插件实现,效率较thttpd低。

shttpd

官方网站: http://shttpd.sourceforge.net/ Shttpd是另一个轻量级的web server,具有比thttpd更丰富的功能特性,支持CGI, SSL, cookie, MD5认证, 还能嵌入(embedded)到现有的软件里。最有意思的是不需要配置文件!

由于shttpd可以嵌入其他软件,因此可以非常容易的开发嵌入式系统的web server,官方网站上称shttpd如果使用uclibc/dielibc(libc的简化子集)则开销将非常非常低。以下是其特点:

Stand-alone server, or embeddable into existing C/C++ program
GET, POST, PUT, DELETE methods
CGI
SSL
Digest (MD5) authorization
Multiple (and user defineable) index files
Directory listing
Standard logging
Cookies
inetd mode
User-defineable mime types
No configuration files
No external dependencies

由于shttpd可以轻松嵌入其他程序里,因此shttpd是较为理想的web server开发原形,开发人员可以基于shttpd开发出自己的webserver!


 

======
 Netcraft(http://www.netcraft.com)和SecuritySpace(http://www.securityspace.com)是国际上公认的两大Web服务器分析统计权威机构。 通过对两大组织2005年1月份至2005年7月份的统计数据的对比分析,同时参考相关的研究报告(http://www.serverwatch.com/news/article.php/3518306),不难看出,以免费开源形式在业已成熟的Web服务器全球市场环境中博得一席之地的Web服务器,依然旗帜林立,阵容不俗。 归属此类阵营的主要Web服务器包括: 久负盛名的Apache, 功能丰富的WN, 精彩纷呈的Zope, 内建多线程支持的AOL Web服务器,灵活多变的Caudium, 设计精致的Xitami, 历史悠久的NCSA httpd, 小巧玲珑的thttpd,  同时还有支持Java特性的Jetty,Roxen和Resin等等。

    下面将对那些获得市场认同的、比较成功的开源Web服务器分别就其较有特色的功能特性作一简要的分析和介绍,或许读者能够从中得到些许启发,在自己的IT规划和未来调研中予以适当地斟酌和借鉴。

CERN httpd与Jigsaw

     在万维网兴起的初期,CERN的开源Web服务器由于对http 1.0协议、通用网关协议CGI的支持,以及作为Proxy服务器等的多重功用性曾经风靡一时,起到了奠基石和里程碑的作用。CERN httpd在1996年发展到3.0版本之后,W3C组织停止了该系列服务器的研发, 另起炉灶,重新设计和开发了新型的Web服务器Jigsaw。
 

     Jigsaw (http://www.w3.org/Jigsaw)实际上是W3C组织对新的Web服务器标准的参考实现,目的是为了展示新的协议(如HTTP 1.1、PICS、WebDAV乃至HTTP NG等)的功能特性,并作为其实现的样板和原型。 迄今为止,Jigsaw业已发展到目前的2.2.5版。 这是一个对于未来的Web技术发展具有前瞻性的设计理念,确保每一种设想、进展和跳跃都能得到初步的验证和迅速的实现,而不是闭门造车。

    在Jigsaw Web服务器的设计上,它采取了与众不同的体系结构, 根据Java的语言特性,将系统的服务层次划分为核心协议层(Daemon)、资源层(Resource)、过滤器层(Filter)和工具层(Utility),从而便于进一步的扩展。目前的Jigsaw支持最新的HTTP 1.1协议、CGI1.1协议,支持HTTP协议扩展框架、PICS协议、WebDAV协议等,同时具有Proxy功能和级联Proxy功能(包括对轻量级多播ICP的支持)。在安全性方面,Jigsaw 2.0已经内嵌了SSL的支持和HTTP基本认证以及摘要认证等。

    使用建议: 对于研究机构或者力图在Web标准方面占得先机的组织或者个人,Jigsaw是一个不错的选择。

Apache

     Apache Web服务器自1996年取代NCSA httpd成为Web服务器的领衔者之后,一直稳居市场头把金交椅的位置。由于Apache巨大的用户群基础和不断推陈出新的持续改进策略,使得它在激烈的竞争中立于不败之地,并逐渐赢得对手的尊重、扶植,如IBM公司和HP公司的操作系统都捆绑了Apache作为其Web服务器的选件。

     Apache目前存在两个版本: 1.3版和2.0 版。2.0版和1.3版本相比,在系统的架构上进行了彻底的重构,在核心层,支持Unix的线程机制,提供了多进程和多线程的混合应用模式,提升了系统的可伸缩性; 能够支持多种协议栈; 对于非Unix操作系统(包括BeOS、OS/2和Windows)提供了更好的支持;更新了Apache API, 以提供更强劲的功能; 通过过滤器机制提供更大的模块灵活性;全面支持IPv6;  提供可以定制的多种语言的错误信息响应;简化系统配置文件的复杂度;支持Windows NT/XP/2000的Unicode编码机制等。

    同时在系统的技术支持和知识库搜寻方面,由于Apache拥有世界上最大的用户群,任何的问题和疑难都能够比较容易地找到令你满意的答案,而任何的安全漏洞也会在巨大的开发群体的智慧池中灰飞烟灭。

    使用建议: 这是一款久经考验的品质卓越的Web服务器,除非你采用某些专用的技术来构建Web应用,否则,在任何时候,Apache Web服务器都是你需要考虑的一项选择。目前Apache的最新版本为Apache 2.0.54,以APL(Apache Public License)授权协议开源发行。

Thttpd
       

    Thttpd是ACME公司设计的一款比较精巧的开源Web服务器。它的初衷是提供一款简单、小巧、易移植、快速和安全的HTTP服务器,而事实上,Thttpd也正是这样一款服务器。它在Unix系统上运行的二进制代码程序,仅仅400k左右,在同类Web服务器中应该是相当精巧的。

     在可移植性方面,它能够在几乎所有的Unix系统上和已知的操作系统上编译和运行。Thttpd在默认的状况下,仅运行于普通用户模式下,从而能够有效地杜绝非授权的系统资源和数据的访问,同时通过扩展它也可以支持HTTPS、SSL和TLS安全协议。Thttpd尤为称道的是已经全面支持IPv6协议, 并且具有独特的Throttling功能,可以根据需要限制某些URL和URL组的服务输出量。此外,Thttpd全面支持HTTP 1.1协议(RFC 2616)、CGI 1.1、HTTP 基本验证(RFC2617)、虚拟主机及支持大部分的SSI(Server Side Include)功能,并能够采用PHP脚本语言进行服务器端CGI的编程。

     使用建议: 对于那些并发访问量中等,而又需要较强响应能力、并期望能够控制用户访问流量,而且有较高安全性需求的用户而言,thttpd Web服务器显然是一个比较好的选择。 thttpd目前的最新版本是2.2.5版。

AOLServer

     AOLServer是美国互联网和传媒巨头AOL公司所提供一款基于TCL/Tk语言而构建的开源Web服务器软件。该产品从1995年初出茅庐之时便明确地采用了多线程的编程思想,从而在性能的提高上奠定了良好的基石。 1999年, AOL公司以Mozilla公共授权许可协议(MPL)公开了AOLServer 3.0的源代码, 免费向公众提供下载。在2005年1月, AOLServer公布了它的最近更新版4.1版。 AOLServer已经被成功地运用到了AOL公司自身的主业务站点www.aol.com上, 这个事实是AOLServer作为成熟的企业级Web服务器的一个鲜明佐证。AOLServer的设计初衷是提供一款极具伸缩能力和扩展性的适合于大规模、动态性Web站点的Web服务器,AOLServer包含了对动态网页编程语言TCL的支持,并且提供了强大的服务器端API,支持即时的HTTP响应gzip编码传输功能, 为网络大容量数据的传输提供了进一步的保障, 尤为难能可贵的是AOLServer提供了全面数据库集成支持,同时AOL内置SSL协议的支持,所有这些都使得AOLserver形成了自己的独特的优势。

     使用建议: 对于那些需要构建大规模、动态复杂网站而又需要相当的灵活性的Web管理人员而言,不妨将AOLSever Web服务器列在自己备选的考察名单中。

Roxen


    Roxen WebServer是近年来发展起来的另外一款基于GPL许可协议的功能齐全的Web服务器,能够运行于Windows、Linux、Solaris和Mac OS X等多种操作平台之上,并且日渐在Web服务器市场上羽翼丰满。Roxen WebServer在系统设计上,采用了模块化的体系结构,使得可以比较容易地进行服务器端的功能扩展,所有的模块都可以进行热插拔,即无需停止Web服务器进程便能够进行功能的修复和拓展;同时, 它集成了MySQL的支持,支持服务器端的多种语言编程,包括自有的RXML、 Java、Perl、PHP和CGI脚本等,支持强加密机制。另外,Roxen的一个独特功能是它的图形特性支持,可以动态地产生图形图像化的内容,进行实时的图形渲染和处理,并且通过特定的扩展模块容器来处理从认证授权管理、带宽控制以及文件系统交互等各种实际的问题。同时Roxen提供了良好的基于Web的配置管理和维护界面,无疑增加了系统的可用性。

    使用建议: 对于那些需要一站式服务来解决大部分实际问题,以及对图形处理要求高的Web站点的管理人员和开发人员来说,Roxen可能是一个比较好的选择。Roxen目前的最新版本是4.0.325。 

 

转载于:https://www.cnblogs.com/vingo888/archive/2005/11/15/277024.html

 类似资料: