Das Finden der Länge einer Stärke in einer nginx.conf Datei
-
05-07-2019 - |
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;
}
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.