У меня есть openresty, настроенный на сервере (пакет nginx, который включает модуль lua), и я пытаюсь создать сценарий, который имеет определенные шансы на установку файла cookie в браузере пользователя. Мой код выглядит так:
location =/index.php {
set $random_num 0;
rewrite_by_lua '
marth.randomseed(1);
nvx.var.random_num = math.random(0,3);
';
add_header Set-Cookie "random_num=$random_num; path=/; domain=...com;";
}
Я знаю, что моя функция случайного начального числа на самом деле не очень случайна, но я решил, что займусь этим позже. На данный момент я просто пытаюсь заставить nginx установить случайное число, но при этом возникает следующая ошибка:
2012/07/11 11:27:20 [error] 5492#0: *44 lua handler aborted: runtime error: [string "rewrite_by_lua"]:3: attempt to ind
ex global 'marth' (a nil value)
stack traceback:
Может ли кто-нибудь сказать мне, что я делаю не так, и есть ли другой способ получить случайное число в nginx?
Судя по записи в журнале ошибок, вы допустили простую опечатку.
marth.randomseed(1);
Это должно читаться так:
math.randomseed(1);