从Tomcat提供静态内容相对慢多少?

17

我有一个包含大量 JSPs,Servlets 并且很多都使用 IceFaces 的 Web 应用程序。显然,其中大部分需要保留在 Tomcat 中。

但是,有人告诉我,Tomcat 上的静态内容(HTML、图像等)比像 Apache 这样的纯 Web 服务器更慢。 我的理解是,当您将 Tomcat 用作独立的 Web 服务器时,它首先使用的是 Apache 的某个版本。 当然,我可能是错的。

但是,从 Tomcat 提供静态映像或文件的惩罚是什么? 对于低流量网站,是否值得将其拆分为自己的 Web 服务器?


3
澄清:在运行Tomcat时,并非自动使用Apache Web服务器。问题在于“Apache”这个词是多义的。当人们谈论Apache时,实际上指的是Apache Web服务器。当然,Tomcat是Apache项目的一部分。清楚如泥?;-) - Julien Chastang
1
确切地说,Apache HTTPD(即Web服务器)和Apache Tomcat是两种完全不同的技术,彼此之间没有任何关联。HTTPD和Tomcat都是“Apache”组织的项目。 - Luke
好的。我只是认为实际接收请求和发送响应的代码会是相同的。我不知道为什么会这样想,因为Apache是用C语言编写的,而Tomcat是用Java编写的。我猜想它可能会转换成C语言来提高速度。无论如何。 - Drew
2个回答

13

有关信息,请参阅Tomcat 连接器 FAQ。对于现代版本的 Tomcat,性能差异比以前小得多。在低流量站点中,您可以使用 Tomcat 提供所有内容,没有任何理由不这样做。


此外,这个解决方案可能会简化您的配置/部署。我曾经遇到过Apache干扰我的Tomcat HTTP头的问题,但一直无法解决。 - Julien Chastang

5

我同意,除非在两种情况下:

  1. Tomcat使用JSSE的SSL速度明显较慢。虽然有可以插入的本地版本,但这往往更加痛苦。总的来说,SSL不如众所周知的Apache Httpd服务器直观易懂。

  2. 使用HTTpd服务器进行前端代理会提供更多关于虚拟Web主机等方面的灵活性。在这方面,Tomcat不如Apache灵活。毫不奇怪,它缺乏所有Apache的选项 :)。一个明显好用的功能是在Apache中内置了静态文件压缩,非常容易添加。在Tomcat中也不难,但需要更多工作。

  3. 你错了。Apache Httpd Server是完全不同的东西,与Tomcat没有任何共享代码。

如果以上两种情况都不是问题,那么使用单独的Tomcat就可以了。


有没有Tomcat SSL的任何基准测试之类的东西?这实际上可能是需要考虑的事情。我不确定数量会使其成为优先事项,但如果我们的性能开始变得太糟糕,那可能就是一个临界点。 - Drew

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