导读:原文作者Michael Dorf是一名专业的软件架构师,Web开发者,开源爱好者,最近沉迷于WordPress。他在Java和J2EE开发领域拥有十几年的开发经验。文中探讨了Apache与Apache Tomcat之间的区别,帮助开发者选择更加适宜的Web服务器。
当你选择使用哪种Web服务器时,或许会因它们的差异性和技术细节等方面而困扰。如何区分Web服务器以及如何为你的项目挑选一款最佳的Web服务器,或许对你来说这是一个很难的决定。鉴于Apache目前最流行的一款Web服务器,本文将探讨Apache与Apache Tomcat两者之间的区别,以满足不同开发者的需求。
Apache Web服务器通常比称之为“Apache”或者“httpd”,1995年由Robert McCool和它的团队开发,由Apache软件基金会提供支持与维护。Apache是目前最流行的Web应用服务器,拥有超过一亿的网站用户和占据互联网应用服务器63%的份额以及全球最繁忙网站中有66%采用Apache的(比方说,维基百科网站服务器就是使用Apache)。
Apache获得了巨大的成就,它是一项完全开源的项目,其成功的大部分原因应归功于免费、稳定且性能卓越。Apache Web服务器是一个用C语言实现的HTTP Web服务器,支持各种特性和模块从而来扩展核心功能。
Apache的优越特性:
- 访问静态页面比Tomcat要快
- Apache有更多的配置选项
- 支持CGI脚本,Server API模块,Perl,PHP等
Apache最大的缺点是不支持Java Servlets或JavaServer Pages,无法在Apache Web服务器上运行。Tomcat由此而诞生。
Apache Tomcat又被称之为“Tomcat”是一款开源的Web服务器,Jakarta项目中的一个核心项目,1999年被开发而成,支持Servlet,由Apache软件基金会提供支持与维护。
Tomcat是靠Java实现的,支持Java Servlets和JavaServer Pages。由Oracle公司指定的,因JSPs而著称。
Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当Apache Tomcat运行tomcat时,它实际上是作为一个与Apache独立的进程单独运行的。
提供Tomcat独立运行的几个不同的安装方法:
- 当运行在Java-based Web服务器时,Tomcat可以“独立”的模式使用,可当做Web服务器的组件。Tomcat将成为在你的JSP环境中管理和以用户名义调用servlets的一种servlets容器,大都数Web服务器不是Java-based系统,这也就意味着你必须选择一个不同的安装设置。
- 当Tomcat配置Apache服务器运行时,你可以以一个附加的Servlet容器运行“in-process”,就像是以独立的模式运行,但是必须与Apache相结合。它以Web服务器插件和Java容器实现的一种组合可运行在JVM之外的Web服务器。该方法非常适合多线程,单一进程服务器且提供良好的性能。
- “out-of-process”,允许Tomcat以Web服务器插件和Java容器实现的一种组合可在Web服务器之外运行。通过使用IPC机制如TCP/IP通信协议来传输Java容器JVM和Web服务器插件之间的数据。当有请求被发送至Web服务器时,通过Servlet请求插件接收request,并把request传输给Java容器。与运行“in-process”相反,当响应时间不在最佳状态时,用“out-of-process”方式能够帮助你更好地执行可扩展性和稳定性。
Tomcat的优越特性:
- 提供Java Servlet和JSP支持动态服务器网页
- 一个轻量级应用服务器
- 可在不同的模式中运行,以提高其性能
如果你对它们都感兴趣的话,这里还提供了Apache training和Tomcat training 学习课程。
对于用户来说,如果你需要运行Java Servlets或者JavaServer pages,相信Tomcat绝对是你最好的选择;但如果你需要运行大量的静态页面或者其他的一些动态技术,你可以选择Apache或者Tomcat的“in- process”或者“out-of-process”模式。 无论是哪一种,你都无须为为它支付任何费用,不是吗?