Frage

Ich habe ein Problem mit meinem $ memcached_keys für nginx in meiner .conf Datei zu lang ist. Ich bin mit dem Memcached-Modul aber einige meiner Urls sind zu lang. Ich bin in den Prozess Benutzer MD5-Hashes der Urls anstatt zu versuchen, aber in der Zwischenzeit ich habe mich nur gefragt, ob es eine Möglichkeit war ich auf der Länge eines Strings in einer Variablen gespeichert überprüfen konnten.

so:

set $memcached_key "byp-$uri";
if ($args) {
    set $memcached_key "byp-$uri?$args";
}

if (len($memcache_key) < 250) {
     memcached_pass 127.0.0.1:11211;
     error_page 404 = @cache_miss;
     error_page 502 = @cache_miss;
}
else {
    pass to @cache_miss;
} 
War es hilfreich?

Lösung

Ich bin nicht positiv, aber ich glaube nicht, dass es innerhalb der nginx Config Sprache erfolgen. Ich vermute, es wäre hier dokumentiert werden, wenn es existiert, und ich sehe nichts.

Andere Tipps

Alte Frage, aber ....

diese Art der Sache zu tun, müssen Sie eine Skript Setup wie das Lua-Modul:

location / {
    set_by_lua $memcached_key '
        if not ngx.var.args then 
            return "byp-" ..  ngx.var.uri
        else 
            return "byp-" ..  ngx.var.uri .. "?" ..  ngx.var.args
        end
    ';
    content_by_lua '
        local string = string;
        if string.len($memcached_key) < 250 then
            ngx.exec("/memcached");
        else
            ngx.exec("/cache_miss");
        end
    ';
}
location /memcached {
    internal;
    memcached_pass 127.0.0.1:11211;
    error_page 404 = /cache_miss;
    error_page 502 = /cache_miss;
}
location /cache_miss {
    internal;
    ...
}

vorschlagen „interne“ Standorte anstelle von benannten Stellen wegen ein paar Macken mit den letzteren aber benannten Stellen können auch verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top