繁体   English   中英

如何在java Web应用程序中同时使用http服务器和应用程序服务器

[英]How to use both http server and application server in a java web application

我有一些Java EE Web应用程序的部署模型问题。 目前,我们正在将我们的Web应用程序部署为Tomcat 6中的WAR文件。所有内容都与WAR文件一起打包,包括静态内容,如图像,静态html页面等。 但我想在HTTP服务器中部署这些静态内容,并仅使用Application服务器来检索动态内容。 我如何拆分这些东西? 是否有任何人做过这种事情,并为我的场景提供了良好的部署模型。 帮助将不胜感激。

制作2个仅包含静态内容的WAR文件是一个好主意,并将该WAR部署在HTTP服务器中,其余部分作为不同的WAR文件部署并部署在应用服务器中? 但是这种方法会对当前引用静态内容的所有页面产生影响,并且需要更改代码,因为我们的项目是巨大的,并且基于代码非常大。

任何策略和想法都是受欢迎的。

出于性能原因,这可能是有趣的事情。

您应该有单独的部署脚本/部署文件来执行此操作。 为一个项目部署多个文件/ WAR /文件夹/脚本不是问题。 当您必须部署WAR并更新数据库时,我们会有同样的事情。

我将有一个WAR文件和一个包含静态内容的文件夹进行部署。


编辑

在HTTP服务器中部署静态内容取决于服务器。 如果要在Linux服务器上使用Apache ,则必须设置虚拟主机

<VirtualHost *:80>
  # This first-listed virtual host is also the default for *:80
  ServerName www.example.com
  DocumentRoot /www/domain
</VirtualHost>

在此示例中,您拥有一个侦听80端口的虚拟主机,任何IP地址和服务器名称www.example.com 然后将其重定向到/www/domain路径。

您将在文档中找到更多示例和配置选项。

您无法将WAR文件部署到HTTP服务器。 WAR用于Java Web应用程序,它必须部署到应用程序服务器或servlet容器(如Tomcat )中。 我不认为在单独的Web应用程序中分离静态内容是个好主意。 如果这是一个项目,它应该是一个Web应用程序,除此之外:

WAR文件具有特殊的文件夹结构,除JSP页面,Java servlet,Java类,HTML页面等外,还包含特殊文件,这些文件组合成Web应用程序。

您可以在一个应用程序中保存静态内容,并且实际上没有什么不好的。

如果你的项目非常庞大并且有很多文件就没问题,你只需要使用这样的项目结构,它应该易于理解和读取,应用程序服务器或servlet容器将负责部署尽可能多的文件。有的内容。

直到版本4,Tomcat在提供静态内容方面一直很慢。 这就是为什么经常建议将动态从静态内容中分离出来并使用常规Web服务器为后者服务(你提到的那本书是在2002年发布的......)。 最近的Tomcat版本没有遇到这个问题,因此你可以免除劈开,这可能是组织和安全的噩梦。

对于静态资源,您可能更关注配置正确的缓存,因此不会更频繁地传输它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM