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
:
levels=1
levels=2
levels=1:1
levels=1:2
levels=2:1
levels=2:2
levels=1:1:1
levels=1:1:2
levels=1:2:1
levels=1:2:2
levels=2:1:1
levels=2:1:2
levels=2:2:1
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
:
- Primer nivel: Se toman los 2 primeros caracteres del hash →
a1
- Segundo nivel: Se toman los 2 siguientes caracteres →
b2
- Tercer nivel: Se toman los 2 siguientes caracteres →
c3
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
olevels=2:2:2
si es realmente necesario.