背景
最近接到一个项目,有这样一个需求,需要对部分文件的下载与预览增加权限控制,只允许会员用户使用,找了一些资料之后最后决定使用Nginx
配合Java
服务来实现这个功能。
只针对一些业务文件采用此方式,网页中的静态文件尽量不要使用这种方法,以免增加服务器的负担
配置Nginx
配置中使用Nginx
开启了一个端口为8086
的文件服务器,配置中增加了internal
属性,表示文件只允许内部访问。在接收到请求后代理转发给了端口为8080
的Java
权限认证服务。
这些基本上就是Nginx
的全部配置了,不是很复杂,配置完成之后记得重启,确保生效。
Java服务
后台使用SpringBoot
搭建服务,在认证通过之后通过设置ResponseHeader
通知Nginx
是否返回请求的文件。
- Content-Type
- Content-Disposition
- X-Accel-Redirect
三个主要的header