九零不老心
发布于 2019-06-25 / 10 阅读 / 0 评论 / 0 点赞

随机生成分享链接并设置链接有效时间

大致原理:(本需求可能有点滑稽,看看就好,不用往心里去)
  1. 安装openresty的nginx M,lua代码实现拓展,动态地反向代理本地正常站点A or B or C
  2. M生成随机数random作为key_name,同时M对要分享的并且要隐藏的本地url,进行md5(url)加密作为key_value,写入本地redis,同时设置该key的有效时间expire,最终生成具有有效时间且具有随机性的http:M/?upstream=md5(url)&random=random访问地址share_url
  3. 被分享的用户,拿到这个share_url去浏览器访问,M的lua拓展代码,会对每次访问进行逻辑验证,每次验证先判断是否有get参数,如果有,则直接跟redis值进行校验,正确,则告知nginx反向代理本地隐藏的url,将真实站点内容反向代理给用户,同时将upstream和random写入用户端的cookie并设置cookie有效时间为url的expire,不正确,则M跳转404; 如果没有get参数,则M读取用户端cookie,如果cookie中有upstream、random的值,则与redis值进行校验,正确,则告知nginx反向代理本地隐藏的url,将真实站点内容反向代理给用户,不正确,则M跳转404,如果本地cookie无upstream、random的值,则M跳转404