您的位置:首页 > 运维架构 > Nginx

nginx + lua 资源防盗链

2015-12-02 10:43 405 查看
使用说明

nginx安装lua扩展

修改配置nginx配置文件

set salt“cmstopSalt”;md5的密钥串setexpire “2”; 过期时间

set $timeType ‘seconds’; 过期时间类型 seconds为秒 期它值为分钟

以下代码保存为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


项目的nginx配置文件中增加以下代码

location ~ \.m3u8$ {
rewrite_by_lua_file 'lua文件地址';
}
```

5. PHP生成密钥规则与参数设置


//nginx中定义的值 如:cmstopSalt

index.m3u8?key=< ?php echo md5(‘cmstopSalt’.time)?>&time=<?php echotime;?>

“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua nginx 扩展