linux轻量级 Web 服务器第1/2页_Linux


作为 Apache 和其他市场领头产品的补充的专用 HTTP 应用程序

 

  

级别: 中级Cameron Laird (claird@phaseit.net), 副总裁, Phaseit, Inc.2007 年 7 月 23 日

最 近几年,市场上出现了很多有趣的 Web 服务器实现,包括 lighthttpd、litespeed 和 mongrel 等。这些 Web 服务器都宣称结合了性能、易管理性、可移植性、安全性和其他相关价值。下面的工程研究将调查轻量级 Web 服务器,以帮助您选择最可能满足下一个项目的技术需求的 Web 服务器。

“轻量级” Web 服务器,例如 lighthttpdlitespeedmongrel,可以为项目带来很多的好处。本文调查这种可能性,并展示这些 Web 服务器的适用性。

一个 Web 服务器需要哪些东西?

第一个重要的方面是清楚地理解所调查的领域(请参阅 参考资料,以了解更详细的信息)。终端用户在 Internet 上的基本动作就是 “进入一个 Web 页面”。从大处讲,这牵涉到两个应用程序之间的协作:

  • 一个 Web 浏览器,例如 Firefox 或 Internet Explorer,用于请求一个特定的页面,并且以人类可读的方式显示从另一个应用程序那里收到的内容。
  • 一个 Web 服务器,通常是在远程机器上,负责对页面请求作出响应,返回 HTML 编码的或类似的数据流。

所有 Web 用户直接与浏览器交互,因此他们的选择和分析相应地有些狂热。而服务器只对站点的技术人员可见。根据 Netcraft 最近的调查,虽然存在很多不同的 Web 服务器,但是其中两种 Web 服务器就占据了 90% 的份额,这两种 Web 服务器是 Apache 和 Internet Information Server (IIS)。它们都是经过高度锤炼的产品,并且声称不仅具有广泛的内在技术特性,而且有很多配套的书籍、增件、顾问、提供商等。那么,它们是否还有值得改 造的地方呢?

答案是肯定的。评价一个 Web 服务器的重要指标有:

  • 性能:对请求作出响应的速度有多快?
  • 可伸缩性:当很多用户同时访问它时,服务器还能继续可靠地运行吗?
  • 安全性:服务器是否只执行它应该执行的操作。它在认证用户和加密传输方面提供了怎样的支持?它的使用是否使附近的应用程序或主机变得更易受攻击?
  • 可靠性:服务器的失效模式和故障发生率如何?
  • 标准遵从性:服务器遵从相关的 RFC 吗?
  • 灵活性:是否可以对服务器进行调优,以支持较重的请求负载、需要计算的动态页面或者代价不菲的认证等等?
  • 平台需求:该服务器可用于哪些平台?它是否有特定的硬件需求?
  • 易管理性:服务器是否易于设置和维护?它是否与日志记录、审计、成本计算等组织标准兼容?

Apache 和 IIS 不能同时在那么多的标准方面做到最好。理论上讲,显然那些定向的产品至少能在以上的一至两个方面超越市场领头产品。

关于轻量级 Web 服务器的一件有趣的、值得调查的事情是,它们之间的竞争远远不止是理论上的:仔细研究表明,它们有很多 东西可以提供,并且即使在很多常见的情况下,它们相对于 Apache 和 IIS 也坚持了自己的风格。虽然可以合理地认为市场领头产品已经经过了小心的优化,从而能够有效地在性能(举个例子)方面避免被击败,但是很多小型的竞争对手因 为只提供简单的静态 Web 页面服务,速度反而更快。当使用这些 Web 服务器运行测试时,您会感觉好像是在赛道上驾驶一辆 go-kart 小车,不知不觉竟然超过了 Porsche 和 Viper 车。这还不是全部:有时候,轻量级 Web 服务器可作为那些大哥级服务器的有效补充,而不只是与它们竞争。即使您知道自己将使用 Apache,有时候通过将它与一个轻量级伙伴搭档,反而可以最大限度地利用它。最好的解决方案有时候需要两个或更多 Web 服务器的协作。


回页首

Web 服务的轻巧性

本 调查中重点关注的 “轻巧性” 实际上是一种主观质量,就像 “艺术” 或 “风格”。它通常意味着简单、易于安装、流线化、要求低和健壮 —— 比 Apache 和 IIS 更小、更简单,当然,在试图满足大量市场的过程中,它们已经变得异常复杂。出于这个目的,虽然 Java Web Server、AOLserver 和 Zeus 拥有迷人的可移植性和性能优势,但是它们的复杂性和大小使其不得不被拒之门外。

轻 量级 Web 服务器可以适用于市场领头产品和其他 “重量级” 服务器无法胜任的情况。例如,整个服务器可以打包在一个文件中。这意味着开发人员可以方便地携带生产环境所需的所有工具。即使在生产服务器上运行的是 Apache,也仍然可以在宾馆的房间里,借助只需数秒钟就可以安装完毕的轻量级 Web 服务器以尝试新想法。而且,由于轻量级 Web 服务器要求很低,因此可以在那些无法负担 IIS 的主机上顺畅地运行。

单文件打包

单文件打包
Apache 需要小心地安装散布在多个目录中的很多文件。与之截然不同的是,下面的 Web 服务器却打包在一个可执行文件中。我的一个雇主 Phaseit 的专长是部署和打包,我们能使 Apache 的安装看上去比平常更简单一些。但是即使我们做得最好,Apache 或 IIS 与轻量级 Web 服务器在 “空间占用” 方面也仍然有很大的差异:前者要占用大量的空间。

小的、轻量级的 Web 服务器还可以在小功率的主机上良好地运行。在我们的公司(Phaseit —— 见 侧栏) 中,我们在远程的、条件欠佳或配置较低的环境中的工业计算机上运行专用的 硬件。在这些情况下,能够通过一个对处理能力或磁盘空间要求很低的应用程序来提供 Web 页面是一个很大的优势。这意味着我们的机器可以避免 Apache 的开发和处理能力所带来的开销,构建基于 Web 的管理控制台。

从某种程度上讲,几乎所有轻 量级 Web 服务器都是开放源码的。如果我们需要某一款 Web 服务器所特有的行为,那么下面概述的一些 Web 服务器都非常小巧,易于理解,也易于增强,只有两个例外。这些 Web 服务器为嵌入 Web 服务的项目提供极好的原始材料,不管这些 Web 服务是在特殊的硬件中,还是在为在通用计算机上运行而设计的特定应用程序中。它们还广泛用于具有传统外观的 Web 站点:

  • YouTube 依靠 lighttpd 快速交付归档的内容,例如视频;
  • cdServe 运行 “German Woodworking Machinery and Tools” CD;
  • LiteSpeed 宣扬它在 twitter、www.funnyoride.com、www.airliners.com、WordPress.com、 fanfiction.com、SlashGear、www.forumactif.com 和其他著名 Web 站点上担任的角色;
  • OpenSUSE、RubyOnRails、MarkaBoo 和其他一些著名站点依赖于 Mongrel;
  • demon.net、bluelight.com、mtv.com、The Drudge Report、garfield.com 等站点则使用 thttpd;
  • 等等。

下面的例子说明了开发人员使用轻量级服务器的轻巧性:在我们公司,我们采用专门的硬件提供办公室电话解决方案。它基于定制的、以传统的 Linux 应用程序的形式运行的软件。只需一个附加文件和一点 init.d 配置,很容易添加一个强大的 “Web 控制台”,该 Web 控制台能提供硬件和软件的管理界面。 终端用户可以从任何浏览器中监视和配置他们的计算机,而不必安排专门的硬件连接或解决使用 “垂直” 硬件时常见的其他复杂性。

面向服务架构(SOA)被认为难以使用。在我们的经验中,SOA 至少有一部分这方面的缺点阻碍了 Web 服务的使用。我们利用轻量级 Web 服务来设置快速的 SOA,以进行演示。

轻量级服务器甚至可以用于生产数据中心,包括前面列出的 high-profile 站点。性能非常高的站点会将操作分开,从而最大限度地利用缓存、代理等技术。例如,一个基于 Apache 的站点可能采用一种这样的架构:通过小型的 Web 服务器从专用的文件系统提供缓慢变化的图片。终端用户看到的结果实际上是 Apache 和一个或多个辅助 Web 服务器通过协作得到的输出,它们各自担任自己擅长的角色。这样的安排可以以非常低的计算成本提供非常 快的结果。


回页首

手段和目的

虽 然轻量级 Web 服务器有很多共同之处,但是各有各的不同。大多数轻量级 Web 服务器是用 C 编写的,但是实践证明,有些其他实现语言也可以成功地用于实现服务器,对此我已经做了实验,这些语言包括 Erlang、Java、Lisp、Lua、Perl、Python 和 Tcl。如果其中有您喜欢的语言,那么也许可以找到适合您的 Web 服务器。

由于很多特定的原因,您可能会将目光投向某种 “不常见” 的语言:

  • 教学:使用轻量级 Web 服务器来制定一个重要、但是并不太大的目标。这是获得使用某种语言的经验的好方法。
  • 虽然用 C 编写的轻量级 Web 服务器大小为 10-50 KB,更高级的语言有 100 KB 到数 MB 的运行时,但整个 Web 服务器的源文件可能只占几千个字节。这种 Web 服务器占用的空间很小,因此比 Apache 更易于与技术伙伴共享。
  • 更高级的语言可以使实验更吸引人 —— 例如,添加一个新的 HTTP/1.1 特性可能只需几行源代码。这些轻量级服务器是非常方便的实验材料。
  • 将 HTTP 服务器添加到已有的、用高级语言编写的应用程序中只需增加几行源代码。

Athana 可以作为这些主题的例子。它是用 Python 编写的 Web 服务器。它支持 HTTP 多部分(上传)、会话、 cookie 等。从 0.2.1 版开始,Athana 一直被编写在一个单独的、精心组织的源文件中。

如前所述,不同的轻量级 Web 服务器有着不同的优点,它们或多或少独立于编程语言。所有轻量级 Web 服务器都比 Apache 更小、更易于配置。与 Apache 相比,有些轻量级 Web 服务器更快,有些则快得多。有些则强调安全性、重负载下的从容性、可扩展性或者内存占有量。在任何情况下,都可以以一种不适用于 Apache 的方式彻底地理解这些服务器。

哪些特定的产品使这些可能性成为现实?即使只留意 “轻量级” 服务器,面对的也是一个很大的难于管理的产品集合。不过可以将它们按子类来划分:超轻型、关注安全型、支持特定语言型等等。

当前1/2页 12下一页阅读全文

时间: 2024-10-07 20:09:52

linux轻量级 Web 服务器第1/2页_Linux的相关文章

如何在Ubuntu 14.04上安装轻量级web服务器Cherokee

如何在Ubuntu 14.04上安装轻量级web服务器Cherokee Cherokee 是一个免费,开源,高性能轻量级的全功能web服务器,支持大部分主流操作系统(Linux. Mac OS X. Solaris 和 BSD).它支持TLS/SSL.FastCGI. SCGI. PHP. uWSGI. SSI. CGI. LDAP. HTTP代理. 视频流处理. 内容缓存. 流量控制. 虚拟主机.Apache兼容的日志文件,以及负载均衡等功能. 今天我们介绍一下怎样在Ubuntu Server

基于linux的Web服务器性能测试

一.基于linux的Web服务器性能测试的重要性 linux作为一种免费的开源操作系统,正越来越受到人们的重视.随着稳定的Linux 2.4内核发布日期的临近和Intel IA-64构架的推出,Linux在服务器操作系统市场所占的份额会继续扩大,那么基于Linux的应用也就会日益丰富.而在Internet时代,操作系统最广阔的市场空间就是Web服务器,正是遍布全球的千千万万的Web服务器才构成了因特网信息资源的基础,而Web服务器性能的优劣直接关系到人们对信息资源的利用效率,因此对Web服务器性

linux配置web服务器

今天我们来看看如何将Web服务器架在Linux系统下. LINUX系统中常见的有:CERN.NCSA.Apache三种方式,一般最常用的方法就是用Apache.此种方式特点明显,配置简明,具有最大的对系统兼容性,以下是用此方式配置基于Linux的WEB服务器的全过程. 一.Apache服务器慨述. 其特征是显著的:可以运行于所有计算机平台,自然包括UNIX/LINUX系统:集成代理服务器和Perl编程脚本:对用户的访问会话过程跟踪:可对服务器日志定制:还支持虚拟主机及HTTP认证等等.再配合LI

linux CentOS WEB服务器分区方案

  分区类型 分区的实际大小 解析 SWAP分区 2G (内存为1G,一般为内存的2倍) / 1G-2G (最少要150–250MB) /boot 32M-100M (启动分区,最多只要100M左右) /opt 100M-1G (附加应用程序) /tmp 40M-1000M (最大可以设为1G左右,如果加载ISO镜像文 件就设为4G左右吧,一般不用那么多) /home 2G-10G (每个用户100M左右,具体自定.用户目录.) /usr 3G-10G (最耗用空间的部份.最少要500M左右,一

http-server 超轻量级web服务器

有的时候做前端,想要运行一些代码,但是又没有必要使用tomcat或者Apache http server,这个时候一个轻量级的简单的http server就可以搞定了. Http-server是基于nodejs的http服务器,它最大好处就是: 可以使任意一个目录成为服务器的目录,完全抛开后台的沉重工程,直接运行想要的js代码. 1 安装nodejs 为了运行http-server,首先要安装nodejs. 可以参考前一篇帖子,安装Nodejs 2 使用npm安装http-server 这里注意

Linux Apache Web 服务器终极教程_unix linux

APACHE系统介绍  根据著名的WWW服务器调查公司所作的调查世界上百分之五十以上的WWW服务器都在使用Apache是世界排名第一的WEB服务器.Apache的诞生极富有戏剧性.当NCSA WWW服务器项目停顿后那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序他们也很快认识到成立管理这些补丁程序的论坛是必要的.就这样诞生了Apache Group后来这个团体在NCSA的基础上创建了Apache.  Apache的主要特征是  . 可以运行上所有计算机平台  . 支持最新的

linux中Web服务器Nginx多方位优化策略

Nginx(读音engine x)服务器由于性能优秀稳定.配置简单以及跨平台,被越来越多的公司和个人所采用,现已成为市场份额继Apache之后的第二大Web服务器.各大小网站论坛博客也介绍说明了Nginx从安装到优化的各种配置.不过看了很多这些相关Nginx的文档之后,发现一个比较大的问题,就是这些文档基本也就从两个方面着手,一是修改Nginx的配置文件,二是调整操作系统的相关内核参数:而且文档说明也不够明了,缺乏比较系统级别的优化.本文将从Nginx源码编译安装开始,到修改配置文件,调整系统内

Linux Apache Web服务器安全的8种安全设置技巧_Linux

Apache服务器是一款开源的WEB服务器,是由非营利组织Apache软件基金会的支持的,我们很多的虚拟主机.VPS等都会使用Apache服务器架构环境,但是任何的架构环境都会遭受各种可能的攻击.安全漏洞的检测.SQL注入.各种拒绝服务攻击等. 作为我们VPS/服务器用户来说,我们一来需要多做备份确保服务器上网站数据的安全,二来还需要随时的观察我们服务器的监控动向,三来需要关注各种最新漏洞安全的更新脚本,作为基础的应用手段,我们需要确保基础的Apache安全设置,从基础上保证服务器的安全. 第一

Linux Apache Web 服务器_服务器

  商业界很快看到了其价值,许多公司建立了主页,利用Web在网上发布消息,并反它作为各种服务的界面,如客户服务.特定产品和服务的详细说明.宣传广千以及是渐增长的产品销售和服务.商业用途促进了环球信息网络的迅速发展.  如果你想通过主页向世界介绍自己或自己的公司,就必须将主页放在一个WEB服务器上,当然你可以使用一些免费的主页空间来发布.但是如果你有条件,你可以注册一个域名,申请一个IP地址,然后让你的ISP将这个IP地址解析到你的LINUX主机上.然后,在LINUX主机上架设一个WEB服务器.你