首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java web应用程序中同时使用http服务器和应用程序服务器。

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

Stack Overflow用户
提问于 2012-09-18 17:26:37
回答 3查看 1.7K关注 0票数 6

我对Java EE web应用程序的部署模型有一些疑问。目前,我们在Tomcat6中将web应用程序部署为WAR文件。所有内容都与WAR文件打包在一起,包括图像、静态html页面等静态内容。但我希望将这些静态内容部署在HTTP服务器中,并仅使用Application服务器来检索动态内容。我如何拆分这些东西?有没有人做过这样的事情,并且为我的场景建立了一个好的部署模型。我们将非常感谢您的帮助。

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

欢迎任何策略和想法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-18 18:00:25

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

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

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

编辑

在HTTP服务器中部署静态内容取决于服务器。如果你想在Linux服务器上使用Apache,你必须设置一个Virtual Host

代码语言:javascript
运行
复制
<VirtualHost *:80>
  # This first-listed virtual host is also the default for *:80
  ServerName www.example.com
  DocumentRoot /www/domain
</VirtualHost>

在本例中,您有一个虚拟主机,它侦听任意IP地址和服务器名称www.example.com80端口。然后将其重定向到/www/domain路径。

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

票数 1
EN

Stack Overflow用户

发布于 2012-09-18 17:47:40

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

WAR文件具有特殊的文件夹结构,除了JSP页、Java、Java类、

页等组合形成应用程序外,还包含特殊的文件。

你可以在你的一个应用程序中保存你的静态内容,这并没有什么坏处。

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

票数 0
EN

Stack Overflow用户

发布于 2012-09-18 18:43:23

直到版本4,Tomcat在提供静态内容方面都相当缓慢。这就是为什么人们经常建议将动态内容从静态内容中分离出来,并使用常规的web服务器为后者提供服务(您提到的这本书是在2002年发行的……)。最近的Tomcat版本没有面临这个问题,因此您可以避免拆分,这可能是组织和安全的噩梦。

对于静态资源,您可能更倾向于配置适当的缓存,以便在必要时不会频繁地传输它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12474089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档