Назад | Перейти на главную страницу

Nginx (openresty) генерирует случайные числа

У меня есть 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);