Apache Tomcat是建立在Apache Web服务器平台上的吗?

14

最近我们的软件分析提供商(NETTRACKER)向我们发送了一个插件,以便能更好地捕获访客。该插件适用于Apache 1.x和Apache 2.x。他们说并且我引用:

由于Apache Tomcat是基于Apache HTTP服务器构建的,因此插件的配置应该相同。

我在我们的Tomcat部署中寻找httpd.conf,但我们找不到任何一个,与之类似的唯一配置是/conf目录下的server.xml。

如果有人对这两个令人难以置信的产品(Apache HTTP服务器和Apache Tomcat)有更好的信息,我将非常感激能够指出它们之间的差异。

编辑: 如果您感到好奇,我们知道Apache Web服务器和Tomcat可以使用mod_jk选项和其他代理一起工作。但这对我们的部署来说过于复杂。

4个回答

18

Apache Tomcat 和 Apache HTTP 是完全不同的服务器技术。使用 Apache HTTP 服务器的插件无法与 Tomcat 一起使用。

Apache HTTP 服务器是用 C 开发的,所以插件也都是如此。相反,Tomcat 现在完全采用 Java 进行开发。Tomcat 不仅可以提供静态内容,还可以提供 JSP 页面和 servlets。

Tomcat 用于托管 Java Web 应用程序。它确实可以提供静态内容-您可以仅使用 Tomcat 托管 Web 应用程序。支持安全连接,并且性能也非常好(与 HTTP 服务器的性能相当)。

纯粹的 Apache 安装服务于静态内容。使用适当的插件,HTTP 请求可以重定向到应用服务器(Tomcat、JBoss、Glassfish)或脚本语言解释器(PHP)。这样就可以生成动态内容。 Apache 的巨大优势在于众多可用的插件,使管理员能够按照自己的方式配置和监视网站,并且它是最广泛使用的服务器。这使得它成为最安全的解决方案,因为经过彻底测试,任何发现的缺陷都会被迅速修正。

最好的解决方案是使用 Apache 服务器代理 Tomcat。这并不难设置。如果您无法做到这一点,则无法利用 Apache 的插件。


知道使用HTTP服务器将请求路由到Tomcat非常棒 - 我现在正在同时使用两者,这将是一个很棒的小技巧! - Mike
最佳方案是使用mod_proxy。在SO上肯定有相关的问题。 - kgiannakakis

7
你经常会看到这种混淆。许多人认为Apache是一个Web服务器,而实际上它是一个名为“The Apache HTTP Server Project”的组织,该组织有一个Web服务器项目叫做HTTPD(D代表守护进程或Unix进程)。 Tomcat是另一个Apache项目。该项目实现了一个Java servlet引擎来提供JSP页面和servlet。Tomcat和HTTPD之间没有任何关系。但是,您可以设置HTTPD和Tomcat以使它们一起工作。这样,您可以让HTTPD提供所有静态内容、执行URL重写以及更多高级功能,而内置的Tomcat Web服务器无法实现(或无法很好地实现)。每当请求JSP页面时,HTTPD将把请求传递给Tomcat。Tomcat将处理请求,并将输出返回给HTTPD,后者将其发送给客户端。
Apache有许多有趣的项目。例如,还有一个名为Geronimo的项目,它是一个Java企业服务器(J2EE)。您可以选择在Geronimo中嵌入Tomcat来处理JSP和servlet的请求,而Geronimo执行更高级的任务(LDAP、消息等)。您可能已经猜到了,您也可以将HTTPD用作Geronimo的静态内容服务器。

3

完全是站不住脚的。Apache httpd插件是用C语言编写的,而Tomcat则是纯Java。


1

Tomcat是一个Java Servlet引擎。它可以在Apache或IIS或许多其他外部面向Web服务器下托管。看起来你可能正在独立运行Tomcat实例...

如果您通过端口8080提供JSP / Servlet并使其独立运行,这可以使它们松散耦合,在与Apache运行的同一主机上,这样做不推荐使用多个Web服务器处理独立请求,特别是如果您想要使用基于服务器的身份验证以及Apache。通常,您只有一个外部面向的服务器来管理所有内容... Apache非常擅长此项工作,并且您提到的插件可能依赖于此类设置(所有内容都通过Apache连接)以获取其功能/能力,根据您的简要描述。

如果您想在Apache下提供Tomcat Servlet,可以配置Apache将一类URI转发到Tomcat服务器实例。您可以通过mod_rewrite实现此类型的转发。从性能上来说,这是一种较慢的选项,因为它会增加您提供的所有内容的轻微开销。您还可以通过CGI机制类似地将传入请求代理到Tomcat。

mod_jk将简化部署并提高性能,使Tomcat放置到Apache服务器配置中。如果您遵循文档进行配置,它是相当轻松的,因此我不确定您所说的“过于复杂”是什么意思——如果您想要Apache并且已经有Tomcat,则只需要进行轻微的配置更改即可下载和安装mod_jk


这个答案只会让人更加困惑。 - Koray Tugay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接