题 为什么我不应该直接使用Tomcat来提供Java webapp?


我曾多次听说不应该从运行它的Tomcat服务器直接向外界提供Java webapp。相反,人们之间应该有一个常规的Web服务器 - 例如Apache的。为什么是这样?


4
2017-10-08 13:18






答案:


在最近问过我的同事web-dev的这个问题时......他说当只有一个源(网络服务器)正在击中它时,Tomcat的运行效率要高得多。它会扩展得更远。此外,实际的网络服务器更容易配置,以执行奇怪的事情,如URL重写(一个非常常见的事情要做,从我们在SF上得到的所有mod_rewrite问题判断),访问控制,以及任何SSL这不像one-cert / one-site那么简单。


4
2017-10-08 14:09



我想 mod_jk 优先于 mod_rewrite 虽然大多数人现在只是反向代理。 - Jé Queue


我不知道这个答案是否特定于Java和Tomcat,但在我们的安全模型中,我们不直接向互联网提供任何东西 - 我们在运行ReverseProxy的DMZ中将Apache安装到我们所有的应用程序服务器上,在一个单独的DMZ中(以及那些连接到另一个DMZ中的数据库服务器。)

除了安全性之外,这还允许您进行重定向,SSL卸载以及Apache可以执行的所有其他好处。我不知道Tomcat是否具备所有这些功能。


3
2017-10-08 13:51





通常用于面向Tomcat的Apache服务器的主要目的是 卸载静态内容 例如Apache,Web服务器的图像,HTML,JS,CSS文件。只有动态请求才会传递给Tomcat,从而减少了流量esp。如果穿过防火墙

查看官方Wiki的完整列表。 我为什么要将Apache与Tomcat集成? (或不) 这解释了安全性,集群和速度的好处,然而较新的Tomcat 6性能并不像以前那么大。


3
2017-10-11 09:10