Привет! Продолжаю свой вопрос про построение динамического бинарника и использование для этого add_afer_body и njs > http://mailman.nginx.org/pipermail/nginx-ru/2018-September/061454.html > http://mailman.nginx.org/pipermail/nginx-ru/2018-September/061461.html
В итоге сейчас собрали такую конструкцию: > location ~ /new4game-qa/web-installer/(.*).exe { > add_after_body /exe_payload/$is_args$args; > alias /files/new4game-qa/web-installer/4game-setup.exe > } > location /exe_payload { > internal; > # rewrite ^/exe_payload/ > /exe_payload/2/$gameKey/$gamekey/$arg_gameKey/$arg_gamekey/ break; > proxy_set_header X-GameKey "2/$gameKey/$arg_gameKey"; > set $gameKey $arg_gameKey; > js_content exe_payload; > } (как видим тут я пробую разные варианты передать $arg_gameKey в обработчик и все безуспешно) меня тут даже спасет если в njs будет передаваться оригинальный url запроса, но этого я тоже не смог добиться :( И сама функция: > function exe_payload(r) { > ... > var config = { > "gameKey": r.variables['gameKey'], > "r.vars": r.variables, > "r.uri": r.uri, > "r.headers": r.headersIn, > "r.key": r.headersIn["X-GameKey"] > }; > var configStr = JSON.stringify(config); И на выходе получаю: > 0079d9c0 61 6d 65 4b 65 79 22 3a 22 22 2c 22 72 2e 76 61 |ameKey":"","r.va| > 0079d9d0 72 73 22 3a 6e 75 6c 6c 2c 22 72 2e 75 72 69 22 |rs":null,"r.uri"| > 0079d9e0 3a 22 2f 65 78 65 5f 70 61 79 6c 6f 61 64 2f 24 |:"/exe_payload/$| > 0079d9f0 69 73 5f 61 72 67 73 24 61 72 67 73 22 2c 22 72 |is_args$args","r| > 0079da00 2e 68 65 61 64 65 72 73 22 3a 6e 75 6c 6c 2c 22 |.headers":null,"| Собственно можно как-то раскрывать variables в location add_after_body? Ну или может есть какой-то более правильный способ передать параметр в njs функцию вызываемую внутри этого subrequest-а? -- Fedor Dikarev _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru