Как организовать проверку условия nginx?

Есть задача проверять параметр в адресной строке и в зависимости от значения либо обрабатывать в текущей секции 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)

отправляет в секцию "/".

Прошу помочь с решением задачи.
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы