nginx + lua 资源防盗链
1. nginx安装lua扩展
2. 修改配置nginx配置文件
- set $salt “cmstopSalt”; md5的密钥串
- set $expire “2”; 过期时间
- set $timeType 'seconds'; 过期时间类型 seconds为秒 期它值为分钟
3. 以下代码保存为lua文件
--获取md5值
function getMd5(time)
return ngx.md5(ngx.var.salt .. time)
end
--获取参数
local args = nil
if "GET" == ngx.var.request_method then
args = ngx.req.get_uri_args()
end
local key = args['key']
local time = tonumber(args['time'])
--获取允许的时间范围
local ur = 0;
local interval = 1;
if ngx.var.timeType ~= 'seconds' then
interval = 60;
end
--验证key是否合法 是否过期
if time ~= nil and key ~= nil and string.len(key) == 32 and getMd5(time) == key and time + tonumber(ngx.var.expire) * interval >= tonumber(os.time()) then
ur = 1;
end
if 0 == ur then
ngx.exit(403)
end
4. 项目的nginx配置文件中增加以下代码
location ~ \.m3u8$ {
rewrite_by_lua_file 'lua文件地址';
}
5. PHP生成密钥规则与参数设置
//nginx中定义的值 如:cmstopSalt
index.m3u8?key=&time=
以上就介绍了 nginx + lua 资源防盗链,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。