关于纯速度方面,建议阅读Myth or truth: One should always use Apache httpd in front of Apache Tomcat to improve performance?博客文章。让我引用其中一部分:
简短的答案是这是一个神话。更长的答案是,在Tomcat 3的时代有一些情况下确有其事实依据。但是,对于今天使用的Tomcat版本(5.5.x和6.0.x),出于纯粹的性能原因,没有必要使用httpd。Tomcat现在支持本机/APR连接器,该连接器使用与httpd相同的本地库(Apache Portable Runtime—APR)进行低级别I/O,因此可以实现与httpd类似的性能。在提供静态内容时,与httpd相比,使用Tomcat会略微增加一些开销,但是这些差异非常小,生产系统中不太可能注意到它们。
...
由Tomcat用户邮件列表上的常规参与者Christopher Schultz执行的性能测试使用了更广泛的文件大小范围,并提供了更好的结果。他测试的结果如下图所示。
这些结果更符合预期,但是有一些有趣的要点需要注意:
- Apache httpd和Coyote APR/native显示类似的性能水平。
- Coyote NIO与httpd和Coyote APR/native相差不远。
...
虽然静态内容的原始性能不是使用httpd的好理由,但有许多很好的原因为什么你可能想要使用httpd与Tomcat。最常见的原因是为两个或更多Tomcat实例提供负载平衡。httpd并不是唯一可以实现这一点的选项 - 可以使用硬件负载均衡器或其他反向代理 - 但它是系统管理员中的热门选择,因为他们中的许多人已经熟悉httpd。我将在未来的文章中写更多关于使用httpd作为负载平衡器的内容。
...
这篇文章非常值得一读。
话虽如此,在Tomcat之前使用Web服务器提供静态内容,显然会为动态内容释放更多的功率,因此这是我最喜欢的选项。
当你在选择Apache httpd和Tomcat之间时,不应该考虑速度。
什么是JK(或AJP)?
AJP是一种协议。它是HTTP协议的优化版本,允许像Apache这样的独立Web服务器与Tomcat通信。历史上,Apache在提供静态内容方面比Tomcat快得多。想法是尽可能让Apache提供静态内容,但将请求代理到Tomcat以获取与Tomcat相关的内容。
并且
速度。 Apache在提供静态内容方面比Tomcat更快。 但是,除非您有一个高流量的站点,否则此点毫无用处。 但在某些情况下,Tomcat可能比Apache httpd更快。 因此,请对您的站点进行基准测试。 当使用正确的连接器(启用sendFile的APR)时,Tomcat可以以httpd速度执行。在选择Apache httpd和Tomcat之间时,不应考虑速度因素
资源: