我在 nginx 中配置了一个位置,如下所示:
location /download {
secure_link $arg_key,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$remote_addr download";
if ($secure_link = "") {
return 403;
}
if ($secure_link = "0") {
return 410;
}
set_unescape_uri $key $arg_key;
set_unescape_uri $value $arg_expires;
redis2_query setnx $key $value;
redis2_pass 127.0.0.1:6379;
proxy_pass http://172.16.10.134/$uri;
proxy_set_header Host $host;
proxy_cache $STATIC;
proxy_cache_valid 200 1d;
proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;
proxy_cache_min_uses 3;
proxy_cache_key $request_uri;
}
在此配置中,我想使用模块 secure_link 来保护链接,并且它完美地工作。现在我尝试通过对一个链接使用一个密钥来使其更安全。我添加了一些行:
set_unescape_uri $key $arg_key;
set_unescape_uri $value $arg_expires;
redis2_query setnx $key $value;
redis2_pass 127.0.0.1:6379;
命令:redis2_query setnx $key $value
如果 key 不存在则返回 1,如果 key 已经存在则返回 0。我想设置一个变量来获取此值,然后为用户返回 403。有人对此有想法吗?谢谢