Aller au contenu

slowfs: Module de cache SlowFS de NGINX

Installation

Vous pouvez installer ce module dans toute distribution basée sur RHEL, y compris, mais sans s'y limiter :

  • RedHat Enterprise Linux 7, 8, 9 et 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 et 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

Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :

load_module modules/ngx_http_slowfs_module.so;

Ce document décrit nginx-module-slowfs v1.12 publié le 22 mars 2026.


ngx_slowfs_cache est un module nginx qui permet de mettre en cache des fichiers statiques (servis à l'aide de la directive root). Cela permet de créer des caches rapides pour des fichiers stockés sur des systèmes de fichiers lents, par exemple :

  • stockage : disques réseau, cache : disques locaux,
  • stockage : disques SATA 7,2K, cache : disques SAS 15K en RAID0.

AVERTISSEMENT ! Il n'y a aucun intérêt à utiliser ce module lorsque le cache est placé sur le(s) même(s) disque(s) à vitesse égale que l'origine.

Sponsors

ngx_slowfs_cache a été entièrement financé par c2hosting.com.

Notes de configuration

Les valeurs de slowfs_cache_path et slowfs_temp_path doivent pointer vers le même système de fichiers, sinon les fichiers seront copiés deux fois.

ngx_slowfs_cache ne fonctionne actuellement pas lorsque AIO est activé.

Directives de configuration

slowfs_cache

  • syntax : slowfs_cache zone_name
  • default : none
  • context : http, server, location

Définit la zone utilisée pour le cache (précédemment définie à l'aide de slowfs_cache_path).

slowfs_cache_key

  • syntax : slowfs_cache_key key
  • default : none
  • context : http, server, location

Définit la clé pour le cache.

slowfs_cache_purge

  • syntax : slowfs_cache_purge zone_name key
  • default : none
  • context : location

Définit la zone et la clé utilisées pour purger des pages sélectionnées du cache.

slowfs_cache_path

  • syntax : slowfs_cache_path path [levels] keys_zone=zone_name:zone_size [inactive] [max_size]
  • default : none
  • context : http

Définit la zone de cache et sa structure.

slowfs_temp_path

  • syntax : slowfs_temp_path path [level1] [level2] [level3]
  • default : /tmp 1 2
  • context : http

Définit la zone temporaire où les fichiers sont stockés avant d'être déplacés vers la zone de cache.

slowfs_cache_min_uses

  • syntax : slowfs_cache_min_uses number
  • default : 1
  • context : http, server, location

Définit le nombre d'utilisations après lequel le fichier est copié dans le cache.

slowfs_cache_valid

  • syntax : slowfs_cache_valid [reply_code] time
  • default : none
  • context : http, server, location

Définit le temps pendant lequel le fichier sera servi à partir du cache.

slowfs_big_file_size

  • syntax : slowfs_big_file_size size
  • default : 128k
  • context : http, server, location

Définit la taille minimale de fichier pour les fichiers big. Les processus de travail fork() un processus enfant avant de commencer à copier des fichiers big pour éviter toute interruption de service.

Variables de configuration

$slowfs_cache_status

Représente la disponibilité du fichier mis en cache.

Les valeurs possibles sont : MISS, HIT et EXPIRED.

Exemple de configuration

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;
        }
   }
}

Tests

ngx_slowfs_cache est livré avec une suite de tests complète basée sur Test::Nginx.

Vous pouvez le tester en exécutant :

$ prove

Voir aussi

GitHub

Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-slowfs.