suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie führe ich eine Divisionsoperation für Variablen in Nginx durch?

Die angeforderte URL lautet beispielsweise

photos/100000_0_9-.jpg

Ich möchte die Zahl 100000 berechnen und dividieren

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;
}

Schreiben Sie dann in das Verzeichnis um, das der ID entspricht. Wenn Sie dies tun, beträgt der Wert der ID jedoch 100.000/10.000 statt 10.

Wie implementiert man diese Divisionsoperation in Nginx?

怪我咯怪我咯2747 Tage vor772

Antworte allen(1)Ich werde antworten

  • 伊谢尔伦

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

    Nginx配置文件里似乎是不支持数据学运算的,可以使用agentzh编写的HttpLuaModule。

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

    也可以字节写个简单的数学运算扩展 https://github.com/arut/nginx-let-mod...。

    Antwort
    0
  • StornierenAntwort