gpt4 book ai didi

java - 用于 war 部署的外部资源与内部资源,例如 Tomcat

转载 作者:行者123 更新时间:2023-11-28 22:32:49 26 4
gpt4 key购买 nike

我有一个 web 应用程序,当前使用外部目录在 Spring webapp 中托管静态文件,例如 css、velocity。也就是说,该目录在tomcat的webapp目录内,但不在WAR内。

除了无需重新编译-打包-部署即可轻松编辑这些资源的能力之外,不将这些文件包含在 war 中还有其他优势。

我似乎记得很久以前有人告诉我,Tomcat 在提供文件静态文件方面性能不佳,但我没有任何经验可以支持这一点。据我所知,唯一的优势是易于编辑。

最佳答案

一般来说,Web 服务器在应用服务器之前 模式仍然有效:

  1. web 服务器 提供 TLS/SSL 终止;客户端通过 HTTPS 与您的 URL 对话,Web 服务器终止 SSL 并将纯 HTTP 消息转发到您的应用程序服务器 (tomcat)。在这种情况下,Web 服务器 可以接管加密造成的负载(CPU 使用率)
  2. 网络服务器提供静态内容;当涉及高流量站点或提供大量静态内容的站点时,Web 服务器 可以提供静态内容。想一想提供包含高分辨率图像(比如 > 1m)的产品目录的应用程序。直接从应用程序服务器 下载图像需要您的应用程序服务器上有一个线程。它还减少了应用程序服务器节点上的网络 I/O。
  3. 非军事区 (DMZ) 中的
  4. web 服务器;企业部署中的常见模式。 Web 服务器 托管在对公众可用的区域中,而您的应用程序服务器 托管在仅对Web 服务器 可用的内部区域中.这引入了另一层安全性。
  5. web 服务器 提供静态缓存; 网络服务器在缓存方面做得很好,例如 Apache。

没问题,根据您的用例,它可能看起来有所不同:

  1. 如果您的 Web 服务器驻留在不同的服务器节点上,您将充分利用上面提供的示例,因为它与计算能力(在本例中为 CPU)有关。
  2. 与往常一样,分布式计算在这种情况下引入了一层复杂性、部署和管理。
  3. 网络服务器应用程序服务器 上建立相同的安全方法可能会变得棘手,例如只允许某些用户访问某些图像。

在相同节点上拥有网络服务器应用程序服务器会降低提供网络服务器的优势。我的经验是,当涉及到“少数用户”使用的“较小”内部应用程序时,不需要 Web 服务器,而且 tomcat 服务很好。如果您的应用仅提供一些静态文件,如 iconscssjavascript,则尤其如此。

希望这有助于...

关于java - 用于 war 部署的外部资源与内部资源,例如 Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7160848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com