Nginx

Nginx (openresty) 生成隨機數

  • December 7, 2019

我在伺服器上設置了 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 中獲取隨機數?

根據您的錯誤日誌條目,您似乎有一個簡單的錯字。

           marth.randomseed(1);

這應該是:

           math.randomseed(1);

引用自:https://serverfault.com/questions/406823