我有一个web应用程序,它目前使用外部目录来托管Spring webapp中的静态文件,例如css,velocity。也就是说,该目录在tomcat的webapp目录内,但不在WAR内。用于战争部署的外部和内部资源,例如Tomcat
除了无需轻松编辑这些资源而无需重新编译打包部署的功能,在战争中不包括这些文件还有什么好处。
我似乎记得被告知长时间AGO Tomcat在提供文件静态文件方面表现不佳,但我没有任何经验支持这一点。据我所知,唯一的优点是易于编辑。
我有一个web应用程序,它目前使用外部目录来托管Spring webapp中的静态文件,例如css,velocity。也就是说,该目录在tomcat的webapp目录内,但不在WAR内。用于战争部署的外部和内部资源,例如Tomcat
除了无需轻松编辑这些资源而无需重新编译打包部署的功能,在战争中不包括这些文件还有什么好处。
我似乎记得被告知长时间AGO Tomcat在提供文件静态文件方面表现不佳,但我没有任何经验支持这一点。据我所知,唯一的优点是易于编辑。
通常,在应用程序服务器图案前面的web服务器仍然是有效的:
毫无疑问,这取决于你的使用情况下,它可能会有所不同:
具有相同的节点上Web服务器和应用服务器减少提供Web服务器的优势。我的经验是,当涉及到“少数用户”使用的“较小”的内部应用程序时,Web服务器不是必需的,并且tomcat服务良好。如果您的应用只提供一些静态文件,如图标,css和javascript,则更是如此。
希望这有助于...
谢谢你是一个非常好的答案!因此,如果我在我的设置中正确理解应用程序服务器(tomcat)提供静态资源而不是web应用程序,所以我没有任何优势(缓存,减少的内部网络通信等),对我而言真的如此没有超出可编辑性的理由。也许我应该考虑将静态资源移动到Web服务器。 – SilentICE
@SilentICE:我认为这取决于。如果您的应用程序今天运行良好,则可能不需要Web服务器。如果你计划增长或想要解决一些安全问题(DMZ),它可能是有道理的。使用['mod_jk'](http://tomcat.apache.org/connectors-doc/index.html)集成相当容易。 – home
你是什么意思的'外部目录'?你是否已经有了一个Web服务器(如Apache HTTP Server)来提供这些静态文件? – home
当前的设置是Apache HTTPd和通常连接到Tomcat的连接器。外部资源目录与未爆炸的WAR位于相同的文件夹中。在我的理想世界中,我只是有Tomcat和战争,但我很好奇目前的配置是否有任何优势,除了轻松编辑css/html/velocity/etc – SilentICE