Nginx配置之视频防盗链

查看Nginx安装的模块

nginx -V

如果没有安装secure_link模块,则需安装

./configure --with-http_secure_link_module \ --prefix=/usr/local/nginx --with-http_stub_status_module
make
make install

重启Nginx服务

nginx -s stop
nginx -s start

配置nginx.conf

location / {
	root /resource/video;
	#这里配置了2个参数一个是st,一个是e
	secure_link $arg_st,$arg_e;
	#st的哈希格式为 自定义秘钥+url+e,e为时间戳单位s,url为请求地址
	secure_link_md5 customSecretKey$uri$arg_e;
	#这里我们的st是我们按照secure_link_md5的方式计算的哈希,secure_link会比对它计算的哈希值是否与我们的st参数一致
	if ($secure_link = "") {
		#资源不存在或哈希比对失败
		return 402;
	}
	if ($secure_link = "0") {
		#时间戳过期
		return 404;
	}
	if ($request_filename ~* ^.*?\.(mp4)$){
		#直接下载防止打开文件  格式: (mp4|txt|jpg)
		add_header Content-Disposition 'attachment;';
	}
}

Java生成防盗链地址

使用Apache commons-codec jar包

注意:进行md5运算时,视频名字前加斜杆 如:/demo.mp4

public static void main(String[] args) {
	String time = String.valueOf(System.currentTimeMillis() / 1000 + Long.valueOf(600));// +600代表600秒后地址失效
	String md5 = Base64.encodeBase64URLSafeString(DigestUtils.md5("customSecretKey" + "/demo.mp4" + time));
	return "http://127.0.0.1/demo.mp4?st=" + md5 + "?e=" + time;
}

最终视频防盗链地址为: http://127.0.0.1/demo.mp4?st=xxxxxxx?e=xxxxxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值