Nginx反向代理服务器

时间:2017-03-30 10:57:07

标签: node.js nginx

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

网络服务器通过私人IP发送请求,你们可以猜测app-server不允许直接请求。

我的问题是我在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。如果这是可能的,我该怎么办?

2 个答案:

答案 0 :(得分:0)

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

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

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

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

希望这会有所帮助。如果有任何问题请告诉我。

答案 1 :(得分:-1)

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