我正在开发一个在 Tomcat 6 上运行的网站。客户似乎过于关心网站的性能,而且我也觉得 HTTPD 在提供静态内容方面更好(更快)。
我还听说 Tomcat6 的独立服务器使用 APR,它本质上是 HTTPD,因此将其放在 HTTPD 之上可能会引入(可忽略不计的)延迟。
从纯粹的性能层面来看,是否存在显著差异?(我知道 HTTPD 将提供更多的灵活性和可能的安全性,但我现在对性能感兴趣。)
答案1
权衡。
Apache HTTP Server 在提供静态内容方面几乎肯定比 Tomcat 更快 - 我没有任何很好的图表来支持这一说法,但是,Apache 是用 C 编写的,而 Tomcat 是用 Java 编写的;C 通常更快。
但是,请记住,拥有两个 Web 服务会在其他方面消耗资源 - 而且这两个 Web 服务器都不以内存占用小而闻名。
它是否值得额外的服务、用于代理请求的额外 TCP 连接以及可能不会超过几毫秒的增益的额外复杂性......这是值得怀疑的。
如果你的客户确实想继续沿着这条路线走下去,也许可以看看非 Apache Web 服务器,它们对静态内容/反向代理角色的资源占用更小 -nginx和lighttpd可能两者都是不错的选择。