3 votes

Comment définir une valeur aléatoire dans la plage spécifiée dans une variable ?

Comment définir une valeur aléatoire dans l'intervalle spécifié dans une variable ? sans modules tiers dans la configuration de nginx ?

Quelque chose comme

set    $random_value         rand(1,4);

1voto

fabyouless Points 48

En utilisant les macports :

après avoir lu ces https://trac.macports.org/ticket/19342 https://stackoverflow.com/questions/7812596/installing-nginx-via-macports-with-ngx-echo-module-available

(doit être perl 5.8 ou 5.10)

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

Je ne peux pas poster plus de liens, trouvez le /HttpEchoModule#Installation sur le site de nginx.

cd /opt/local/src/

Téléchargez le tgz ici : https://github.com/agentzh/echo-nginx-module/downloads tar -zxvf /Users/lorieri/Downloads/agentzh-echo-nginx-module-v0.37rc7-1-gb0e0a23.tar.gz

port edit nginx

ajouter ces lignes, entre toute autre variante

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

alors...

# port install -v nginx +perl5 +echo

éditer /opt/local/etc/nginx et mentionner dans le commentaire précédent (ci-dessous), dans le contexte http puis éditez le même fichier pour ajouter l'emplacement de test

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

exécuter nginx

# nginx

testez-le avec curl, wget, votre navigateur...

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

pourquoi j'ai fait ça ? pour mettre sur nginx un cookie user_uid pour un an et un cookie aléatoire pour la session en cours.

0voto

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

Utilisation du module perl.

Et quel est le but de cette mise en cache ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X