¿Inactive debe ser mayor o igual a proxy_cache_valid en Nginx?

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Sí, inactive debe ser mayor o igual a proxy_cache_valid para que la caché funcione de manera efectiva y no elimine objetos antes de lo esperado.

Detalle de cómo interactúan:

  1. proxy_cache_valid:
    Establece el tiempo de validez de los objetos en la caché. Por ejemplo:

    proxy_cache_valid 200 10m;

    Esto significa que las respuestas con código HTTP 200 serán válidas durante 10 minutos en la caché.
  2. inactive:
    Define cuánto tiempo puede permanecer un objeto en la caché sin ser solicitado. Si un objeto no se utiliza durante el tiempo especificado, se eliminará de la caché, incluso si todavía es válido según proxy_cache_valid.

Relación entre ambos:

  • Si inactive es menor que proxy_cache_valid, los objetos podrían eliminarse antes de que expiren según las reglas de validez, lo cual es ineficiente.
  • Si inactive es mayor o igual a proxy_cache_valid, los objetos se mantendrán en la caché mientras sean válidos y hasta que el tiempo inactivo se alcance.

Ejemplo práctico:

Supongamos la siguiente configuración:

proxy_cache_valid 200 10m;
proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=mycache:10m inactive=15m max_size=1g;
  • Una respuesta con código 200 será válida en la caché durante 10 minutos.
  • Si nadie solicita ese objeto durante 15 minutos, se eliminará automáticamente.

En este caso, como inactive (15m) es mayor que proxy_cache_valid (10m), el sistema funciona correctamente.

Recomendación:

Siempre asegúrate de que inactive sea mayor o igual que el tiempo máximo configurado en las directivas proxy_cache_valid.