Niveles de almacenamiento en caché de Nginx

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

El parámetro levels en Nginx puede aceptar hasta tres niveles jerárquicos de subdirectorios, y cada nivel puede tener valores de 1 o 2, lo que significa que puedes configurarlo de las siguientes maneras:

Formas válidas de usar levels:

  1. levels=1
  2. levels=2
  3. levels=1:1
  4. levels=1:2
  5. levels=2:1
  6. levels=2:2
  7. levels=1:1:1
  8. levels=1:1:2
  9. levels=1:2:1
  10. levels=1:2:2
  11. levels=2:1:1
  12. levels=2:1:2
  13. levels=2:2:1
  14. levels=2:2:2

¿Qué significa cada valor?

  • Un valor de 1 significa que el subdirectorio usará 1 carácter del hash MD5 para nombrar el directorio.
  • Un valor de 2 significa que el subdirectorio usará 2 caracteres del hash MD5.

El máximo posible sería:

levels=2:2:2

Ejemplo con levels=2:2:2:

Supongamos que el hash MD5 de la clave de caché es: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p

Con levels=2:2:2:

  1. Primer nivel: Se toman los 2 primeros caracteres del hash → a1
  2. Segundo nivel: Se toman los 2 siguientes caracteresb2
  3. Tercer nivel: Se toman los 2 siguientes caracteresc3

La estructura del archivo sería:

/data/nginx/cache/a1/b2/c3/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p

Límite práctico de niveles

Aunque técnicamente puedes usar hasta levels=2:2:2, en la mayoría de los casos, levels=1:2 o levels=2:2 son suficientes. Esto se debe a que demasiados niveles pueden ser excesivos y aumentar el tiempo de acceso al archivo, especialmente si el sistema de archivos ya maneja directorios con eficiencia.

Recomendación común:

  • Para cachés pequeñas/medianas: levels=1:2
  • Para cachés grandes (millones de archivos): levels=2:2 o levels=2:2:2 si es realmente necesario.