Saltar a contenido

slowfs: Módulo de Caché SlowFS de NGINX

Instalación

Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:

  • RedHat Enterprise Linux 7, 8, 9 y 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-slowfs
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-slowfs

Habilita el módulo añadiendo lo siguiente al principio de /etc/nginx/nginx.conf:

load_module modules/ngx_http_slowfs_module.so;

Este documento describe nginx-module-slowfs v1.12 lanzado el 22 de marzo de 2026.


ngx_slowfs_cache es un módulo de nginx que permite la caché de archivos estáticos (servidos utilizando la directiva root). Esto permite crear cachés rápidas para archivos almacenados en sistemas de archivos lentos, por ejemplo:

  • almacenamiento: discos de red, caché: discos locales,
  • almacenamiento: discos SATA de 7,2K, caché: discos SAS de 15K en RAID0.

¡ADVERTENCIA! No tiene sentido usar este módulo cuando la caché se coloca en el(los) disco(s) de la misma velocidad que el origen.

Patrocinadores

ngx_slowfs_cache fue completamente financiado por c2hosting.com.

Notas de configuración

Los valores de slowfs_cache_path y slowfs_temp_path deben apuntar al mismo sistema de archivos, de lo contrario, los archivos se copiarán dos veces.

ngx_slowfs_cache actualmente no funciona cuando AIO está habilitado.

Directivas de configuración

slowfs_cache

  • sintaxis: slowfs_cache zone_name
  • predeterminado: none
  • contexto: http, server, location

Establece el área utilizada para la caché (definida previamente usando slowfs_cache_path).

slowfs_cache_key

  • sintaxis: slowfs_cache_key key
  • predeterminado: none
  • contexto: http, server, location

Establece la clave para la caché.

slowfs_cache_purge

  • sintaxis: slowfs_cache_purge zone_name key
  • predeterminado: none
  • contexto: location

Establece el área y la clave utilizadas para purgar páginas seleccionadas de la caché.

slowfs_cache_path

  • sintaxis: slowfs_cache_path path [levels] keys_zone=zone_name:zone_size [inactive] [max_size]
  • predeterminado: none
  • contexto: http

Establece el área de caché y su estructura.

slowfs_temp_path

  • sintaxis: slowfs_temp_path path [level1] [level2] [level3]
  • predeterminado: /tmp 1 2
  • contexto: http

Establece el área temporal donde se almacenan los archivos antes de ser movidos al área de caché.

slowfs_cache_min_uses

  • sintaxis: slowfs_cache_min_uses number
  • predeterminado: 1
  • contexto: http, server, location

Establece el número de usos después del cual el archivo se copia a la caché.

slowfs_cache_valid

  • sintaxis: slowfs_cache_valid [reply_code] time
  • predeterminado: none
  • contexto: http, server, location

Establece el tiempo durante el cual el archivo será servido desde la caché.

slowfs_big_file_size

  • sintaxis: slowfs_big_file_size size
  • predeterminado: 128k
  • contexto: http, server, location

Establece el tamaño mínimo de archivo para archivos big. Los procesos de trabajo fork() un proceso hijo antes de comenzar a copiar archivos big para evitar cualquier interrupción del servicio.

Variables de configuración

$slowfs_cache_status

Representa la disponibilidad del archivo en caché.

Los valores posibles son: MISS, HIT y EXPIRED.

Ejemplo de configuración

http {
    slowfs_cache_path  /tmp/cache levels=1:2 keys_zone=fastcache:10m;
    slowfs_temp_path   /tmp/temp 1 2;

    server {
        location / {
            root                /var/www;
            slowfs_cache        fastcache;
            slowfs_cache_key    $uri;
            slowfs_cache_valid  1d;
        }

        location ~ /purge(/.*) {
            allow               127.0.0.1;
            deny                all;
            slowfs_cache_purge  fastcache $1;
        }
   }
}

Pruebas

ngx_slowfs_cache viene con un conjunto de pruebas completo basado en Test::Nginx.

Puedes probarlo ejecutando:

$ prove

Ver también

GitHub

Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-slowfs.