- 安装openresty的nginx M,lua代码实现拓展,动态地反向代理本地正常站点A or B or C
- M生成随机数random作为key_name,同时M对要分享的并且要隐藏的本地url,进行md5(url)加密作为key_value,写入本地redis,同时设置该key的有效时间expire,最终生成具有有效时间且具有随机性的http:M/?upstream=md5(url)&random=random访问地址share_url
- 被分享的用户,拿到这个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