0%

Nginx配合后台服务控制文件的下载与预览

背景

最近接到一个项目,有这样一个需求,需要对部分文件的下载与预览增加权限控制,只允许会员用户使用,找了一些资料之后最后决定使用Nginx配合Java服务来实现这个功能。

只针对一些业务文件采用此方式,网页中的静态文件尽量不要使用这种方法,以免增加服务器的负担

配置Nginx

在这里插入图片描述

配置中使用Nginx开启了一个端口为8086的文件服务器,配置中增加了internal属性,表示文件只允许内部访问。在接收到请求后代理转发给了端口为8080Java权限认证服务。

这些基本上就是Nginx的全部配置了,不是很复杂,配置完成之后记得重启,确保生效。

Java服务

在这里插入图片描述

后台使用SpringBoot搭建服务,在认证通过之后通过设置ResponseHeader通知Nginx是否返回请求的文件。

  • Content-Type
  • Content-Disposition
  • X-Accel-Redirect

    三个主要的header

    更多的header介绍