gpt4 book ai didi

java - 如何从内部服务器在 Java Web 应用程序中提供静态内容?

转载 作者:行者123 更新时间:2023-12-02 04:37:35 25 4
gpt4 key购买 nike

这是一个标准(可能微不足道)的情况,但我找不到有关该主题的详细信息。

假设我们有一个 Web 应用程序 A (http://my-webapp) 和一个文件服务器 F (http ://文件服务器)。

为了清楚起见:

  • A 在 Jetty 9 上运行;
  • F 对 Jetty 服务器可见,对客户端不可见。

A中显示存储在F上的图片的最佳做法是什么?

假设客户端发出请求http://my-webapp/pictures/123,其中123 - 任何id,以某种方式指向存储为的图片>http://file-server/storage/xxx123.jpg,并期望在浏览器中看到该图片。

最佳答案

“最佳实践”涵盖了很多内容。

出于负载和性能方面的原因,最好使用 Web 服务器(如 NGINX 或 Apache)而不是应用程序服务器来提供静态 Assets 。大多数生产环境都有这样的设置,在必要时使用 Web 服务器将请求代理到应用程序服务器。

如果您有这样的设置,您可以将 F 上的图像驱动器映射为 Web 服务器上的驱动器,并使用 .htaccess 重写规则来处理文件名逻辑。

如果由于无法在正则表达式或类似表达式中捕获文件名逻辑而无法实现此目的,则可以在 A 上编写一个 servlet 以发出到“常规”Web 位置的重定向。大致如下:

我强烈建议您不要使用servlet从F读取文件,然后将其流式传输到浏览器;这会消耗应用程序服务器上的大量内存,并且可能会减慢甚至失败,具体取决于您的本地网络状况。您的应用程序的性能几乎肯定会在负载下迅速恶化。

关于java - 如何从内部服务器在 Java Web 应用程序中提供静态内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56542828/

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