如何在变量中设置指定范围内的随机值无需第三方模块在 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 模块。
那么这种缓存的目的是什么?