Есть задача проверять параметр в адресной строке и в зависимости от значения либо обрабатывать в текущей секции server, либо перенаправлять на другой сервер.
Проверка происходит с помощью lua, но дальше не получается направить запрос.
Пробовал следующие варианты:
rewrite_by_lua_block {
ngx.exec("@asd")
}
location @asd {
echo "asd";
}
на выходе имеем rewrite or internal redirection cycle while redirect to named location "@asd"
set $new "0";
rewrite_by_lua_block {
ngx.var.new="1"
}
if ($new = "1") {
rewrite ^(.*)$ /to_new_server/$1;
}
location / {
echo "no";
}
location /to_new_server/ {
echo "asd";
}
выполняется секция "/". при этом $new по факту равна 1.
ngx.req.set_uri("/to_new_server", true)
rewrite or internal redirection cycle while processing "/to_new_server"
local uri = ngx.re.sub(ngx.var.uri, "^(.*)$", "/to_new_server/$1")
ngx.req.set_uri(uri)
отправляет в секцию "/".
Прошу помочь с решением задачи.