Maison  >  Questions et réponses  >  le corps du texte

Comment effectuer une opération de division sur des variables dans nginx ?

Par exemple, l'url demandée est

photos/100000_0_9-.jpg

Je veux calculer le nombre 100000 et le diviser

location ~ /photos/([0-9]+)_0_([0-9]+)-.jpg$ {
    root '/home/images';
    set $id /10000;
    set $version ;
    rewrite /photos/([0-9]+)_0_([0-9]+)-.jpg$ /$id/$version/_0_-.jpg;
}

Réécrivez ensuite dans le répertoire correspondant à l'id, mais si vous faites cela, la valeur de l'id deviendra 100000/10000 au lieu de 10.

Comment implémenter cette opération de division dans nginx ?

怪我咯怪我咯2712 Il y a quelques jours735

répondre à tous(1)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-05-16 17:32:00

    Le fichier de configuration Nginx ne semble pas prendre en charge les opérations de science des données. Vous pouvez utiliser le HttpLuaModule écrit par agentzh.

    location ~ /photos/([0-9]+)_0_([0-9]+)-.jpg$ {
        root '/home/images';
        set $id ;
        set $version ;
        set_by_lua $id
                   "return math.floor(tonumber(ngx.arg[1])/10000)"
                    $id;
        rewrite /photos/([0-9]+)_0_([0-9]+)-.jpg$ /$id/$version/_0_-.jpg;
    }

    Vous pouvez également écrire une extension d'opération mathématique simple en octets https://github.com/arut/nginx-let-mod....

    répondre
    0
  • Annulerrépondre