Welcome! Log In Create A New Profile

Advanced

Variables в add_after_body или передача параметров в njs subrequest

Fedor Dikarev
September 25, 2018 05:50AM
Привет!

Продолжаю свой вопрос про построение динамического бинарника и
использование для этого 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
Subject Author Posted

Variables в add_after_body или передача параметров в njs subrequest

Fedor Dikarev September 25, 2018 05:50AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 146
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready