【发布时间】:2014-01-07 14:46:34
【问题描述】:
我有一个 VPS,我想在其中安装一个用于生产的 Web 应用程序。
目前,它适用于使用 AJP 模块通过 Apache Server 连接的 Tomcat 6。
一切正常,但我想知道将 Tomcat 配置为主 Web 服务器是否是个好主意,因为我们将只运行 JSP 应用程序。
仅供参考:服务器必须处理 https 请求。
提前致谢。
【问题讨论】:
我有一个 VPS,我想在其中安装一个用于生产的 Web 应用程序。
目前,它适用于使用 AJP 模块通过 Apache Server 连接的 Tomcat 6。
一切正常,但我想知道将 Tomcat 配置为主 Web 服务器是否是个好主意,因为我们将只运行 JSP 应用程序。
仅供参考:服务器必须处理 https 请求。
提前致谢。
【问题讨论】:
几年前有很多错误信息反对将Tomcat 直接用作 Web 服务器,但实际上 Tomcat 运行良好。
我几乎在各种项目中使用了所有版本的 Tomcat,尽管所有版本的容量都相对较小。永远不要让我失望——好吧,WebDAV 模块从来没有正常工作过。但除此之外,Tomcat 对于静态内容和动态 servlet 工作都是快速且可靠的。
Apache HTTP Server ("httpd") 当然是非常高级且功能齐全的。如果您需要这些功能,请使用 httpd。如果您的流量非常大,请使用 httpd。如果你有大量的静态访问并且想要解除 Tomcat 的这个职责,从而让 Tomcat 将其性能集中在你的 servlet 上,那么使用 httpd。如果您想在启动和关闭 Tomcat 的同时保持前端网站运行,请使用 httpd。但对于大多数相对简单的网站或简单的网络应用来说,Tomcat 就足够了。
我建议您单独尝试 Tomcat,看看效果如何。从您的开发和测试系统开始。查看 httpd 的配置文件,看看是否可以使用 Tomcat 功能重现其所有功能。如果一切正常,那么做一些负载测试。要么破解你自己的一些负载测试,要么尝试许多负载测试框架中的任何一个。
虽然您可以将 web 应用程序热部署到 Tomcat,但在生产中并不总是推荐这样做(我不确定当前版本)。计划如何处理关闭 Tomcat 以部署更新的应用程序并执行维护工作。
您说您使用的是 Tomcat 6。您可能需要考虑迁移到 Tomcat 7 或 8,但请查看发行说明。
还可以考虑Jetty,它是 Tomcat 最直接的竞争对手/替代品。 Jetty 在用途、功能范围和声誉方面与 Tomcat 非常相似。
【讨论】:
如果您使用 SSL,您将通过使用 Apache HTTPD 前端获得以下好处:
还有许多其他好处,例如:
我多年来一直使用独立的 Tomcat,但在进行了切换之后,即使是一个全新的项目,我也永远不会回去。
【讨论】:
我认为两者都不是更好,这取决于您的要求。在您可能必须跨异构后端(IIS、Tomcat 等)横向解决安全性或日志记录要求的环境中,Apache 是您的朋友(或昂贵的负载平衡器)。
假设您没有这些要求,我不知道为 Apache 使用 Apache 有什么好处。
SSL 很容易在 Tomcat 中配置,如今的性能可能与 Apache 相当,并且可以通过 APR 得到改进。
【讨论】: