Eu configuro um local no 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;
}
Nesta configuração, eu quero proteger o link com o módulo secure_link e funcionar perfeitamente. Agora eu tento melhorar com mais segurança usando uma chave para um link. Eu adiciono alguma linha:
set_unescape_uri $key $arg_key;
set_unescape_uri $value $arg_expires;
redis2_query setnx $key $value;
redis2_pass 127.0.0.1:6379;
comando: redis2_query setnx $key $value
retornará 1 se a chave não existir, 0 se a chave já existir. e eu quero definir uma variável para obter esse valor e retornar 403 para o usuário. algum corpo tem ideia para isso? obrigado