我在服务器上设置了 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);