从 nginx 连接到 redis2

从 nginx 连接到 redis2

我在 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。有人对此有想法吗?谢谢

相关内容