Nginx (openresty) gerando números aleatórios

2

Eu tenho openresty configurado em um servidor (pacote nginx que inclui o módulo lua) e estou tentando criar um script que tem chances específicas de definir um cookie no navegador do usuário. Meu código é assim:

    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;";
    }

Eu sei que a minha função de semente aleatória não é realmente aleatória, mas eu pensei em lidar com isso mais tarde. No momento, estou apenas tentando obter o nginx para definir um número aleatório, mas isso gera esse erro:

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:

Alguém pode me dizer o que estou fazendo errado, e se há alguma outra maneira de obter um número aleatório no nginx?

    
por Mediocre Gopher 11.07.2012 / 17:52

1 resposta

7

Com base na entrada do seu registro de erros, parece que você tem um erro de digitação simples.

            marth.randomseed(1);

Isso deve ser:

            math.randomseed(1);
    
por 11.07.2012 / 19:29