有哪些轻量级web服务器

有哪些轻量级web服务器,第1张

(1)ApacheApache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自"a patchy server"的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。(2)IIS是英文Internet Information Server的缩写,译成中文就是"Internet信息服务"的意思。它是微软公司主推的服务器,最新的版本是Windows2008里面包含的IIS 7,IIS与Window Server完全集成在一起,因而用户能够利用Windows Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。(3)GFEGoogle的web服务器,用户数量激增。目前紧逼iis。(4)Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。(5)Lighttpd是由德国人 Jan Kneschke 领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。Lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。(6)Zeus是一个运行于Unix下的非常优秀的Web Server,据说性能超过Apache,是效率最高的Web Server之一。(7)Sun的Java系统Web服务器也就是以前的Sun ONE Web Server。主要出现在那些运行Sun的Solaris操作系统的关键任务级Web服务器上。它最新的版本号是6.1,可以支持x86版本Solaris,Red Hat Linux,HP-UX 11i, IBM AIX,甚至可以支持Windows,但它的大多数用户都选择了SPARC版本的Solaris操作系统。(8)Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。(9)Jetty是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。(10)BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。 BEA WebLogic Server拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性。(11)Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

珹pache 和IIS占据了全球大部分互联网网站,但是它们仍有缺点:

Apache采用多进程模型响应用户请求,性能略有欠缺,对于物理内存依赖性很高,单机能够支撑的并发请求也只有几千,无法满足高并发性网站的需求。针对DOS攻击,可能瘫痪而致无法被访问。

IIS是只能运行在Windows平台之上的多线程web服务器,安全性Bug极多,极易被黑客攻击。

1、Lighttpd

lighttpd采用事件驱动和异步IO技术,运行时,一般只有单一的进程、单一的线程。实际上,lighttpd的服务进程很少会成为系统的瓶颈,系统的瓶颈通常是负责处理业务逻辑的CGI进程或者磁盘网络IO等。相对于Apache,稳定性不足。

2、Thttpdthttpd几乎可以任何支持POSIX标准的系统上运行,移植性特别好;在运行过程中,内存消耗小;由于小巧,没有采用fork的形式来处理新来的连接,从而不会产生过多的进程消耗系统资源,性能较高。

它是嵌入式系统的web server的最好选择。

3、NginxNginx采用master-slave模型,能够充分利用SMP的优势,且能够减少工作进程在磁盘I/O的阻塞延迟;其稳定性极高,由于采取了分阶段资源分配技术,使得CPU与内存占用率非常低;有出色的反向代理功能,常被用来充当反向代理服务器,或作为大规模邮件服务器的前端代理。

4、TUX支持SMP对称多处理器,多线程可以异步地完成复杂的HTTP请求;从内核的网络层直接驱动web服务,实现了一个真正意义上的网络事件驱动服务器;用内核网络层缓存请示,加快了静态请求的分发速度。TUX有时候被用来作为专门的图片服务器。

根据 Netcraft 最近的调查,虽然存在很多不同的 Web 服务器,但是其中两种 Web 服务器就占据了 90% 的份额,这两种 Web 服务器是 Apache和 Internet Information Server(IIS)。但是,是不是就没有其他的呢?如果你要了解一个web服务器是怎么运行的。至少它是怎么可以同时服务成千上万的用户的,这个问题,可能是很多网络服务器编程都要面对的问题。那么他们的源代码呢? 很显然IIS是不可能有源代码的,不然微软早就game over了。但是你会说Apache是开源的,是的,它是开源的,但是我觉得等你搞明白了apache的时候,也许是半年之后的事情了,并且你可能会觉得,哦,天啊,原来它是这么糟糕。 所以,如果你希望了解web服务器的工作原理,就需要那些剩下的10%-轻量级web服务器了,当然了,他们一般都是开源的,并且大部分是使用c和perl写的,还有的是java、php等,也有一些“不著名”的语言。 它们比 Apache 小得多。如此小的应用程序可以直接记住,系统地、严密地加以考虑,以证明它们的安全性或可伸缩性。小型 Web 服务器包括: Cheetah Server,用不到一千行的 C 代码编写而成。 DustMote,一个非常 小的 Web 服务器,用一个大约 3000 字节的 Tcl 源文件实现。 fnord,大小取决于平台和配置,不超过 20K。虽然很小,但是它支持虚拟主机、CGI和 keep-alive。 ihttpd,使用不到 800 行的 C 代码,包括 CGI,并通过 inetd提供页面。 im-httpd,非常小的服务器 —— 只有大约 7 KB,链接到 glibc。而且它也非常快。 mattows,支持 CGI,只有 600 行 C 代码。 Scrinchy,虽然很小,不到 30KB,但是支持多种脚本编制语言,包括一种特殊用途的、基于栈的 Sy 脚本语言。 ZWS 演示了一个即使是使用 500 多行带足够注释的 zsh (!) 编写的应用程序 —— 在这里是一个 HTTP 0.9+ 服务器 —— 也可以有多强大。 体积小并不妨碍这些服务器被正式使用。例如,fnord 可以处理数千个同时进行的连接。 也许轻量级作为一个类别最令人印象深刻的成就是高性能服务器: cghttpd 是一个小型 Web 服务器,它被理解为使用 2.6 系列内核中可用的异步功能的一个试验品。 darkhttpd 是一个快速的、单线程的 HTTP/1.1 服务器。 Gatling 是为高性能设计的。它的特性包括 FTP、IPv6、虚拟主机、CGI 等。 Kernux 是一个 Linux内核模块,它实现了一个 HTTP 守护进程。 lighttpd 是使用率排名第五的 Web 服务器(排名还在上升)。它为很多同时进行的连接进行了优化:“典型的场景是使用 lighttpd 作为一个下载(off-load)服务器,以提供静态内容……” LiteSpeed Web Server 是一款轻量级商业 Web 服务器,强调性能和安全性。LiteSpeed Technologies 公司宣传为静态内容提速了 6 倍,在解释页面方面也有一定的提高。

Miniature JWS,也称 tjws,它是基于 Java 的 Web 服务器,可以处理servlet、JSP和数千个并发连接,而大小只有 77 KB。它的作者声称它 “比 Apache 2.x 快 10%”。 Yaws 是用 Erlang 编写的一款高性能 HTTP/1.1 服务器。 有些 Web 服务器被实现为类或库,以便嵌入到较大的应用程序中。 在这些 Web 服务器当中,我发现特别有趣的有: EHS —— “嵌入式HTTP 服务器”,被设计为一个 C++类,用于嵌入到较大的 C++ 应用程序;还有 Embedded TCL Web Server,它是一个很普通的 Web 服务器,支持 SSL和 Basic Authentication,速度非常快 —— 其作者使它至少与 lighthttpd 和 AOLserver 一样快。它是用不到 100 行 Tcl 编写的。 Python 是几种适合不寻常环境的 Web 服务器的实现语言,这些 Web 服务器包括: cdServer 是一个小型的、用 Python 编写的 HTTP 服务器,它“被设计用来提供来自 CD-ROM 的(静态)内容” 。它在提供动态内容方面能力有限。我们有几个涉及不受影响的“live CDs” 的项目,在这些项目中像 cdServer 之类的工具很关键。 edna,一款智能的用 Python 编写的 MP3 服务器,它是用 HTTP 实现的。

还有其他一些用 Perl 和其他不出名的语言编写的轻量级 Web 服务器: Camlserv,用 ocaml 编写的一个完整的 Web 服务器,目标是 “高度交互式的 Web 页面”。它由几千行 ocaml 编写而成,其中大部分代码都与 MySQL和 HTML 的特殊处理有关。 dhttpd 用和 Apache 相同的格式记录访问。它支持 CGI,并具有内建的 Perl 解释器、虚拟主机、IPv6、带宽管理和安全性等方面的特性。 DNHTTPD 是用 Perl 编写的,用于 UNIX。它支持虚拟主机、SSL 连接、CGI 等。 Jellybean 是用 Perl 编写的基于 HTTP 的 Perl Object Server。 lns.http 是一个 Common LISP HTTP/1.1 Web 框架。 Mongrel 是用 Ruby编写的、用于 HTTP 的一个库和服务器。 Nanoweb 是用 PHP编写的一款快速、健壮的 Web 服务器。它宣称具有丰富的特性,包括完全遵从 HTTP/1.1、访问控制、身份验证、虚拟主机、SSL 兼容性等。 Naridesh 是用 Perl 编写的 Web 服务器。 OpenAngel 是用 Perl 编写的。它强调的重点是安全性。 Xavante 是用 Lua 编写的 HTTP/1.1 Web 服务器。 XSP 是用 C# 编写的,用于运行 ASP.NET。

有时候您可能需要其他一些用 C 编写的、具有不常见的次要优势的轻量级 Web 服务器: ABYSS 可以在 UNIX 和 Win32 之间移植,其 “目的是成为完全遵从 HTTP/1.1 的 Web 服务器”。它占用的内存很少。 Anti-Web HTTPD(也称 “Anti-Web”、“awhttpd” 和 “AW”)是一款单进程、无线程、支持 CGI 的服务器,它强调安全性和简单性。 MHTTPD 支持从外部文件或 LDAP 服务器进行的 MHTTPD Basic Authentication。 mini-httpd 可以在一个系统线程中处理多个并发请求,但是在主机上占用的内存或 CPU很少。 Naken Web 类似于很多其他的轻量级服务器 —— 它支持 Basic Authentication、静态内容等 —— 但是它的作者将它设计为用于 Webcam 操作,并且在 Gumstix、WRT54GL、OpenWrt 和其他新的平台上运行。

Null httpd 是一款多线程的、简单的、可移植的 Web 服务器。 Seminole 是一款商业 Web 服务器,内存需求较小,功能较多。 thttpd throttle,支持 chroot、Basic Authentication 等。 Web 服务器远远不止是 Apache和 IIS 的天下。您可以发现很多其他的 Web 服务器,它们很小,易于理解,但是又足够快,可以被正式使用。这样的 Web 服务器可以很好地加快您的下一个项目。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/302493.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存