【问题标题】:Nginx reverse proxy serverNginx 反向代理服务器
【发布时间】:2017-03-30 19:52:17
【问题描述】:

我有 2 个 Ubuntu 服务器在数字海洋的同一位置运行,第一个作为 webserver(nginx) 运行,另一个作为 app-server(Nodejs) 运行

Webserver 通过私有 ip 发送请求,你们可以猜到 app-server 不允许直接请求。

我的问题是我在应用服务器中有图像/上传目录,例如:/srv/upload/user_images,我想从网络浏览器中获取这些图像。

例如:www.myappserveripaddress.com/srv/upload/user_images/image1.jpeg

但特权将是唯一可以从外部访问的图像。没有人可以访问 /srv/upload/user_images/ 以查看所有图像。

我不知道它是否可能。只有用户知道图片名称,才能输入ip.com/srv/upload/user_images/imageName.jpg。如果可以的话,我该怎么办?

【问题讨论】:

    标签: node.js nginx


    【解决方案1】:

    不是 100% 确定我理解您的问题,但为了将用户链接到一组特定图像,您可以在图像名称后附加 UserID。

    如果你有一个数据库,每次用户上传一张图片时,你也可以只保存他保存的图片的名称,然后当图像保存在文件系统中时,你用名称 {UserID}-{ 保存它图片名称}.jpg。

    在他的图片菜单上,他可以很容易地看到他上传的所有图片名称的列表。这些名称取自数据库,不是服务器上文件的链接。只有当他点击图片时,才会为名为 /server/images/{UserID}-{imageName}.jpg 的资源构建请求。

    此处的用户 ID 可确保您的服务器中没有重复的图像名称。

    希望这会有所帮助。如果有任何错误,请告诉我。

    【讨论】:

      【解决方案2】:

      您必须在服务器之间编写 api 和客户端。逻辑是:最终用户想要访问图像。 Nginx(可能是 php)接收请求并创建对 nodejs 的新请求。它检查图片路径并将图片返回给nginx,nginx将图片数据返回给客户端。

      【讨论】:

        猜你喜欢
        • 2017-08-16
        • 2017-07-17
        • 2020-08-19
        • 2020-06-29
        • 2016-09-07
        • 2020-04-19
        • 2020-09-29
        • 2020-09-22
        • 2018-09-10
        相关资源
        最近更新 更多