Dos valores diferentes de fastcgi_cache_valid para nginx.
Utilizo fastcgi_cache
en nginx y quiero usar dos periodos de tiempo de caché diferentes para solicitudes distintas.
Por ejemplo:
if ($request<em>uri ~* "/(api/1|api/2)")
{
set $no</em>cache 0;
set $cache_valid 5m;
}
...
<pre><code>fastcgi_cache_valid 200 $cache_valid; // no funciona
fastcgi_cache_valid 200 1m; // funciona
</code></pre>
¿Cómo puedo usar dos valores de tiempo diferentes de fastcgi_cache_valid
?
davy.ai
Para utilizar dos valores de tiempo
fastcgi_cache_valid
diferentes en nginx, puedes asignar el tiempo de caché deseado a una variable basada en una condición, y luego utilizar esa variable para establecer el período de validez del caché.Por ejemplo, en el fragmento de configuración proporcionado, se establece la variable
cache_valid
en5m
para las solicitudes que contienen/api/1
o/api/2
. Para utilizar esta variable para establecer el período de validez del caché, puedes reemplazar la siguiente línea:con:
Esto le indica a nginx que utilice el valor de
$no_cache
como la bandera de anulación (que se establece en0
si se permite el almacenamiento en caché), y utilice el valor de$cache_valid
como el período de validez del caché.Alternativamente, puedes utilizar una directiva de map para asignar URIs de solicitud específicos a diferentes tiempos de caché, como se muestra a continuación:
Esto define un mapa llamado
$cache_time
, que establece el tiempo de caché predeterminado en1m
, pero anula el tiempo de caché a5m
para las solicitudes que contienen/api/1
o/api/2
. La variable$cache_time
se utiliza luego para establecer el período de validez del caché en la directivafastcgi_cache_valid
.