如何在变量的指定范围内设置随机值?

如何在变量的指定范围内设置随机值?

如何在变量中设置指定范围内的随机值无需第三方模块在 nginx 的配置中?

就像是

set    $random_value         rand(1,4);

答案1

使用 macports:

读完这些之后 https://trac.macports.org/ticket/19342 https://stackoverflow.com/questions/7812596/installing-nginx-via-macports-with-ngx-echo-module-available

(必须是 perl 5.8 或 5.10)

# port -f install perl5 +perl5_8
# port clean nginx
# port install nginx +perl5

我无法发布更多链接,请在 nginx 网站上找到 /HttpEchoModule#Installation

cd /opt/local/src/

在这里下载 tgz:https://github.com/agentzh/echo-nginx-module/downloads tar -zxvf /用户/lorieri/下载/agentzh-echo-nginx-module-v0.37rc7-1-gb0e0a23.tar.gz

port edit nginx

在任何其他变体之间添加这些行

variant echo description {Add echo } {
    configure.args-append --add-module=/opt/local/src/agentzh-echo-nginx-module-b0e0a23
}

然后...

# port install -v nginx +perl5 +echo

编辑 /opt/local/etc/nginx 并在前面(下面)的注释中提及,在 http 上下文中,然后编辑相同的文件以添加测试位置

    location /lorieri {
            default_type text/plain;
            echo $rnd;
    }

运行 nginx

# nginx

使用 curl、wget、浏览器进行测试...

# curl localhost/lorieri
9
# curl localhost/lorieri
8
# curl localhost/lorieri
8
# curl localhost/lorieri
9
# curl localhost/lorieri
6

我为什么要这么做?在 nginx 上设置一年的 cookie user_uid 和当前会话的随机 cookie

答案2

        http {
             perl_set  $rnd 'sub { return int(rand(10 - 5)) + 5; }';
             ...
        }

使用 perl 模块。

那么这种缓存的目的是什么?

相关内容