es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for 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 en 5m 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:

    fastcgi_cache_valid 200 $cache_valid;
    

    con:

    fastcgi_cache_valid 200 $no_cache $cache_valid;
    

    Esto le indica a nginx que utilice el valor de $no_cache como la bandera de anulación (que se establece en 0 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:

    map $request_uri $cache_time {
        default         1m;
        ~/(api/1|api/2) 5m;
    }
    
    fastcgi_cache_valid 200 $no_cache $cache_time;
    

    Esto define un mapa llamado $cache_time, que establece el tiempo de caché predeterminado en 1m, pero anula el tiempo de caché a 5m 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 directiva fastcgi_cache_valid.

Comments are closed.