将变量发送到nginx并将其取回

时间:2013-06-24 02:21:01

标签: variables nginx

我将自定义变量发送到nginx,如下所示:

http://myserver2.com/adm/306/89/protectedfile.zip?h=4JljxlK530mM6CPbG5wdTQ&e=1372125364&o=279

变量“h”和“e”用于secure_link mod,“o”由我添加,是我想在post_action中收回的。见我的指令:

    location /adm/ {
        secure_link $arg_h,$arg_e;
        secure_link_md5 SECRETKEY$uri$arg_e$remote_addr;
        if ($secure_link = "") {
            return 403;
        }
        if ($secure_link = "0") {
            return 403;
        }
        rewrite  ^/adm/(.*)$  /download/$1  break;
        post_action /has_finished_downloading/$1;
    }

    location /has_finished_downloading/ {
        resolver 8.8.8.8;
        proxy_pass http://mymainserver.com/download_complete.php?ip=$remote_addr&body_bytes_sent=$body_bytes_sent&status=$request_completion&file_name=$1;
    }

这样,我可以成功收回一些变量,包括例如$ _GET ['file_name'],即“/adm/306/89/protectedfile.zip”。
除了“o”变量。我尝试了许多东西来取回$ _GET ['o]但我的php脚本没有成功。它不是由nginx发送的,我没有任何想法如何以正确的方式去做。

我也尝试了这个,但它失败了(添加$ arg_o):

location /has_finished_downloading/ {
    resolver 8.8.8.8;
    proxy_pass http://mymainserver.com/download_complete.php?ip=$remote_addr&body_bytes_sent=$body_bytes_sent&status=$request_completion&file_name=$1&myo=$arg_o;
}

感谢您的建议。

1 个答案:

答案 0 :(得分:0)

我或多或少用

解决了这个问题
$request_uri