linux轻量级 Web 服务器

 更新时间:2007年11月26日 15:03:15   作者:  
我特别喜欢其中的超轻型 Web 服务器,它们比 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 服务器可以很好地加快您的下一个项目。

参考资料

学习

获得产品和技术

讨论

关于作者

相关文章

  • Apache中Virtual Host虚拟主机配置及rewrite参数说明

    Apache中Virtual Host虚拟主机配置及rewrite参数说明

    这篇文章主要介绍了Apache中Virtual Host虚拟主机配置及rewrite模块中的重要参数说明,是在同一个Apache服务器软件上部署多个站点的基础方法,需要的朋友可以参考下
    2016-03-03
  • Linux如何运行SQL文件

    Linux如何运行SQL文件

    这篇文章主要介绍了Linux如何运行SQL文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • linux防火墙配置教程之访问外网web实验(3)

    linux防火墙配置教程之访问外网web实验(3)

    这篇文章主要为大家详细介绍了linux防火墙配置教程之访问外网web的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • CentOS平台实现搭建rsync远程同步服务器的方法

    CentOS平台实现搭建rsync远程同步服务器的方法

    这篇文章主要介绍了CentOS平台实现搭建rsync远程同步服务器的方法,较为详细的分析了CentOS搭建rsync远程同步服务器的具体步骤、相关命令与注意事项,需要的朋友可以参考下
    2018-04-04
  • 使用Linux要改掉几个的命令习惯

    使用Linux要改掉几个的命令习惯

    现在越来越多的人用linux系统,本文分享的这些习惯也许会令你事半功倍,找到其中的乐趣。刚开始使用Linux时你也许会感到不习惯,许多高手也都有这样的经历。毕竟,曾经他们也都是新手。好的习惯可以提高工作效率以及命令的运行效率,下面来一起看看吧。
    2016-11-11
  • Linux下Apache服务的部署和配置

    Linux下Apache服务的部署和配置

    这篇文章介绍了Linux下Apache服务的部署和配置,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • Centos7下编译安装配置Nginx+PHP+MySql环境

    Centos7下编译安装配置Nginx+PHP+MySql环境

    这篇文章主要介绍了Centos7下编译安装配置Nginx+PHP+MySql环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • centos更改时区的方法

    centos更改时区的方法

    centos默认使用UTC时区,中国用户需要修改成自己的时区,这篇文章主要介绍了centos更改时区的方法,需要的朋友可以参考下
    2014-03-03
  • Linux调整命令历史方法详解

    Linux调整命令历史方法详解

    这篇文章主要介绍了Linux调整命令历史方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 一篇文章弄懂Linux磁盘和磁盘分区

    一篇文章弄懂Linux磁盘和磁盘分区

    分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用。下面这篇文章主要给大家介绍了关于Linux磁盘和磁盘分区的相关资料,需要的朋友可以参考下
    2018-12-12

最新评论