Comment retourner une table/tableau d'une directive set_by_lua_*
afin qu'elle puisse être lue plus tard par une autre directive set_by_lua_*
?Comment configurer la variable nginx en table/tableau Lua
Mon intention est de retourner une valeur complexe une fois, puis de mettre des morceaux de la valeur retournée dans d'autres variables. Dans un monde idéal ce que je voudrais écrire (exemple non travail):
location {
set_by_lua_file $info '/my/library/do_stuff_with_headers_and_env.lua';
set_by_lua $language 'return $info["language"]';
set_by_lua $best_server 'return $info["server"]';
set_by_lua $last_user 'return $info["user"]';
echo "Best server for $language is $best_server (last used by $last_user)";
}
On pourrait simplement définir ces variables dans le script en utilisant ngx.var
, mais je voudrais écrire le fichier de script comme une sorte de bibliothèque et laissez l'utilisateur extraire uniquement les informations dont il a besoin.
Étant donné que set_by_lua_*
ne supporte pas les tables/tableaux (set_by_lua $x 'return {"foo", "bar"}';
ensembles $x
à nil
), sont là les meilleures pratiques, des solutions de contournement ou des moyens idiomatiques pour retourner une table/tableau à partir set_by_lua_*
directives?