Nginx(openresty)生成随机数

Nginx(openresty)生成随机数

我在服务器上设置了 openresty(包含 lua 模块的 nginx 包),并尝试创建一个脚本,该脚本具有在用户浏览器上设置 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 中获取随机数?

答案1

根据您的错误日志条目,似乎您有一个简单的拼写错误。

            marth.randomseed(1);

应为:

            math.randomseed(1);

相关内容