gpt4 book ai didi

java - 我可以使用 NGINX 传递静态 secret (驾驶执照等验证文件)图像吗?

转载 作者:行者123 更新时间:2023-12-01 08:45:23 24 4
gpt4 key购买 nike

我刚刚开始了解 NGINX。但我有些怀疑 NGINX 是否能满足我的要求。

问题:在我的网络应用程序中,我正在服务器文件系统上传用户的文档,比如在/opt/myproject/images 目录中。

我需要一种方法来使用 NGINX 为用户提供文档(如驾驶执照等 secret 文件),但我还需要一种方法来检查该用户是否有权获取此资源。

这是我的要求。 NGINX 可以满足我的要求吗?

注意:我的应用程序服务器是 tomcat(在 Spring Boot 中构建,我的应用程序作为 jar 文件运行)

或者还有什么更好的办法吗?

注意:我不希望我的应用服务器承受太多负载,这就是我使用 NGINX 的原因

最佳答案

是的,你可以做到。您需要做的是使用 X-Accel header 。因此,您将在 nginx 配置中定义一个 block

location /confidential_images {
root /opt/myproject/images;
internal;
}

将 API 标记为内部意味着只有 nginx 可以调用此 block 。现在您的代码将包含有关用户应该看到哪些图像的信息。因此,您将在用户可以访问的代码中创建一个端点,您可以在其中检查他们可以访问哪些图像。然后您可以从代码中返回 X-Accel-Redirect header

在您的代码中,您将返回标题下方

X-AccelRedirect: /confidential_images/<path inside images folder>;

然后,Nginx 会将其内部重定向到我们定义的内部位置,并且该镜像将成为服务器。关键是不要让 nginx 直接提供图像,而是使用由应用程序代码控制的内部位置。

了解更多关于 https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/

关于java - 我可以使用 NGINX 传递静态 secret (驾驶执照等验证文件)图像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46131879/

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