| [img]http://www.ibm.com/i/c.gif[/img]
|
| [img]http://www.ibm.com/i/c.gif[/img]
|
[img]http://www.ibm.com/i/c.gif[/img]
| [img]http://www.ibm.com/i/c.gif[/img]
|
|
| |
|
级别: 中级claird@phaseit.net?subject=%E8%BD%BB%E9%87%8F%E7%BA%A7%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8&cc=zoucl@cn.ibm.com), 副总裁, Phaseit, Inc.2007 年 7 月 23 日
[quote]
最 近几年,市场上出现了很多有趣的 Web 服务器实现,包括 lighthttpd、litespeed 和 mongrel 等。这些 Web 服务器都宣称结合了性能、易管理性、可移植性、安全性和其他相关价值。下面的工程研究将调查轻量级 Web 服务器,以帮助您选择最可能满足下一个项目的技术需求的 Web 服务器。
[/quote]
“轻量级” Web 服务器,例如 [code]lighthttpd[/code]、 [code]litespeed[/code] 和 [code]mongrel[/code],可以为项目带来很多的好处。本文调查这种可能性,并展示这些 Web 服务器的适用性。
[url=http://www.ibm.com/developerworks/cn/web/wa-ltwebserv/index.html#resources]参考资料[/url],以了解更详细的信息)。终端用户在 Internet 上的基本动作就是 “进入一个 Web 页面”。从大处讲,这牵涉到两个应用程序之间的协作:
[list]
[*]一个 Web 浏览器,例如 Firefox 或 Internet Explorer,用于请求一个特定的页面,并且以人类可读的方式显示从另一个应用程序那里收到的内容。
[/*][*]一个 Web 服务器,通常是在远程机器上,负责对页面请求作出响应,返回 HTML 编码的或类似的数据流。 [/*][/list]
所有 Web 用户直接与浏览器交互,因此他们的选择和分析相应地有些狂热。而服务器只对站点的技术人员可见。根据 Netcraft 最近的调查,虽然存在很多不同的 Web 服务器,但是其中两种 Web 服务器就占据了 90% 的份额,这两种 Web 服务器是 Apache 和 Internet Information Server (IIS)。它们都是经过高度锤炼的产品,并且声称不仅具有广泛的内在技术特性,而且有很多配套的书籍、增件、顾问、提供商等。那么,它们是否还有值得改 造的地方呢?
答案是肯定的。评价一个 Web 服务器的重要指标有:
[list]
[*][b]性能[/b]:对请求作出响应的速度有多快?
[/*][*][b]可伸缩性[/b]:当很多用户同时访问它时,服务器还能继续可靠地运行吗?
[/*][*][b]安全性[/b]:服务器是否只执行它应该执行的操作。它在认证用户和加密传输方面提供了怎样的支持?它的使用是否使附近的应用程序或主机变得更易受攻击?
[/*][*][b]可靠性[/b]:服务器的失效模式和故障发生率如何?
[/*][*][b]标准遵从性[/b]:服务器遵从相关的 RFC 吗?
[/*][*][b]灵活性[/b]:是否可以对服务器进行调优,以支持较重的请求负载、需要计算的动态页面或者代价不菲的认证等等?
[/*][*][b]平台需求[/b]:该服务器可用于哪些平台?它是否有特定的硬件需求?
[/*][*][b]易管理性[/b]:服务器是否易于设置和维护?它是否与日志记录、审计、成本计算等组织标准兼容? [/*][/list]
Apache 和 IIS 不能同时在那么多的标准方面做到最好。理论上讲,显然那些定向的产品至少能在以上的一至两个方面超越市场领头产品。
关于轻量级 Web 服务器的一件有趣的、值得调查的事情是,它们之间的竞争远远不止是理论上的:仔细研究表明,它们有[i]很多[/i] 东西可以提供,并且即使在很多常见的情况下,它们相对于 Apache 和 IIS 也坚持了自己的风格。虽然可以合理地认为市场领头产品已经经过了小心的优化,从而能够有效地在性能(举个例子)方面避免被击败,但是很多小型的竞争对手因 为只提供简单的静态 Web 页面服务,速度反而[i]更快[/i]。当使用这些 Web 服务器运行测试时,您会感觉好像是在赛道上驾驶一辆 go-kart 小车,不知不觉竟然超过了 Porsche 和 Viper 车。这还不是全部:有时候,轻量级 Web 服务器可作为那些大哥级服务器的有效[i]补充[/i],而不只是与它们竞争。即使您知道自己将使用 Apache,有时候通过将它与一个轻量级伙伴搭档,反而可以最大限度地利用它。最好的解决方案有时候需要两个或更多 Web 服务器的协作。
| [img]http://www.ibm.com/i/v14/rules/blue_rule.gif[/img]
[img]http://www.ibm.com/i/c.gif[/img]
|
[img]http://www.ibm.com/i/c.gif[/img]
| [img]http://www.ibm.com/i/v14/icons/u_bold.gif[/img]
|
[url=http://www.ibm.com/developerworks/cn/web/wa-ltwebserv/index.html#main][b]回页首[/b][/url] | |
[url=http://www.ibm.com/developerworks/cn/web/wa-ltwebserv/index.html#sidebars]侧栏[/url]) 中,我们在远程的、条件欠佳或配置较低的环境中的工业计算机上运行专用的 硬件。在这些情况下,能够通过一个对处理能力或磁盘空间要求很低的应用程序来提供 Web 页面是一个很大的优势。这意味着我们的机器可以避免 Apache 的开发和处理能力所带来的开销,构建基于 Web 的管理控制台。
从某种程度上讲,几乎所有轻 量级 Web 服务器都是开放源码的。如果我们需要某一款 Web 服务器所特有的行为,那么下面概述的一些 Web 服务器都非常小巧,易于理解,也易于增强,只有两个例外。这些 Web 服务器为嵌入 Web 服务的项目提供极好的原始材料,不管这些 Web 服务是在特殊的硬件中,还是在为在通用计算机上运行而设计的特定应用程序中。它们还广泛用于具有传统外观的 Web 站点:
[list]
[*]YouTube 依靠 lighttpd 快速交付归档的内容,例如视频;
[/*][*][url=http://www.licher-ffm.de/cdServer.html]cdServe[/url] 运行 “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;
[/*][*]等等。 [/*][/list]
下面的例子说明了开发人员使用轻量级服务器的轻巧性:在我们公司,我们采用专门的硬件提供办公室电话解决方案。它基于定制的、以传统的 Linux® 应用程序的形式运行的软件。只需一个附加文件和一点 [code]init.d[/code] 配置,很容易添加一个强大的 “Web 控制台”,该 Web 控制台能提供硬件和软件的管理界面。 终端用户可以从任何浏览器中监视和配置他们的计算机,而不必安排专门的硬件连接或解决使用 “垂直” 硬件时常见的其他复杂性。
面向服务架构(SOA)被认为难以使用。在我们的经验中,SOA 至少有一部分这方面的缺点阻碍了 Web 服务的使用。我们利用轻量级 Web 服务来设置快速的 SOA,以进行演示。
轻量级服务器甚至可以用于生产数据中心,包括前面列出的 high-profile 站点。性能非常高的站点会将操作分开,从而最大限度地利用缓存、代理等技术。例如,一个基于 Apache 的站点可能采用一种这样的架构:通过小型的 Web 服务器从专用的文件系统提供缓慢变化的图片。终端用户看到的结果实际上是 Apache 和一个或多个辅助 Web 服务器通过协作得到的输出,它们各自担任自己擅长的角色。这样的安排可以以非常低的计算成本提供[i]非常[/i] 快的结果。
| [img]http://www.ibm.com/i/v14/rules/blue_rule.gif[/img]
[img]http://www.ibm.com/i/c.gif[/img]
|
[img]http://www.ibm.com/i/c.gif[/img]
| [img]http://www.ibm.com/i/v14/icons/u_bold.gif[/img]
|
[url=http://www.ibm.com/developerworks/cn/web/wa-ltwebserv/index.html#main][b]回页首[/b][/url] | |
[url=http://www.athana.org/]Athana[/url] 可以作为这些主题的例子。它是用 Python 编写的 Web 服务器。它支持 HTTP 多部分(上传)、会话、 cookie 等。从 0.2.1 版开始,Athana 一直被编写在一个单独的、精心组织的源文件中。
如前所述,不同的轻量级 Web 服务器有着不同的优点,它们或多或少独立于编程语言。所有轻量级 Web 服务器都比 Apache 更小、更易于配置。与 Apache 相比,有些轻量级 Web 服务器更快,有些则[i]快得多[/i]。有些则强调安全性、重负载下的从容性、可扩展性或者内存占有量。在任何情况下,都可以以一种不适用于 Apache 的方式彻底地理解这些服务器。
哪些特定的产品使这些可能性成为现实?即使只留意 “轻量级” 服务器,面对的也是一个很大的难于管理的产品集合。不过可以将它们按子类来划分:超轻型、关注安全型、支持特定语言型等等。
当前1/2页 [b]1[/b][url=http://www.1sucai.cn/article/12913_2.htm]2[/url][url=http://www.1sucai.cn/article/12913_2.htm]下一页[/url][url=http://www.1sucai.cn/article/12913_all.htm]阅读全文[/url] |