Pular para conteúdo

slowfs: Módulo de Cache SlowFS do NGINX

Instalação

Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:

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

Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:

load_module modules/ngx_http_slowfs_module.so;

Este documento descreve o nginx-module-slowfs v1.12 lançado em 22 de março de 2026.


ngx_slowfs_cache é um módulo do nginx que permite o cache de arquivos estáticos (servidos usando a diretiva root). Isso permite criar caches rápidos para arquivos armazenados em sistemas de arquivos lentos, por exemplo:

  • armazenamento: discos de rede, cache: discos locais,
  • armazenamento: drives SATA de 7,2K, cache: drives SAS de 15K em RAID0.

AVISO! Não faz sentido usar este módulo quando o cache está localizado nos mesmos discos de mesma velocidade que a origem.

Patrocinadores

ngx_slowfs_cache foi totalmente financiado por c2hosting.com.

Notas de configuração

Os valores de slowfs_cache_path e slowfs_temp_path devem apontar para o mesmo sistema de arquivos, caso contrário, os arquivos serão copiados duas vezes.

Atualmente, ngx_slowfs_cache não funciona quando AIO está habilitado.

Diretivas de configuração

slowfs_cache

  • sintaxe: slowfs_cache zone_name
  • padrão: none
  • contexto: http, server, location

Define a área usada para cache (definida anteriormente usando slowfs_cache_path).

slowfs_cache_key

  • sintaxe: slowfs_cache_key key
  • padrão: none
  • contexto: http, server, location

Define a chave para o cache.

slowfs_cache_purge

  • sintaxe: slowfs_cache_purge zone_name key
  • padrão: none
  • contexto: location

Define a área e a chave usadas para purgar páginas selecionadas do cache.

slowfs_cache_path

  • sintaxe: slowfs_cache_path path [levels] keys_zone=zone_name:zone_size [inactive] [max_size]
  • padrão: none
  • contexto: http

Define a área de cache e sua estrutura.

slowfs_temp_path

  • sintaxe: slowfs_temp_path path [level1] [level2] [level3]
  • padrão: /tmp 1 2
  • contexto: http

Define a área temporária onde os arquivos são armazenados antes de serem movidos para a área de cache.

slowfs_cache_min_uses

  • sintaxe: slowfs_cache_min_uses number
  • padrão: 1
  • contexto: http, server, location

Define o número de usos após os quais o arquivo é copiado para o cache.

slowfs_cache_valid

  • sintaxe: slowfs_cache_valid [reply_code] time
  • padrão: none
  • contexto: http, server, location

Define o tempo pelo qual o arquivo será servido do cache.

slowfs_big_file_size

  • sintaxe: slowfs_big_file_size size
  • padrão: 128k
  • contexto: http, server, location

Define o tamanho mínimo do arquivo para arquivos big. Os processos de trabalho fork() um processo filho antes de começarem a copiar arquivos big para evitar qualquer interrupção no serviço.

Variáveis de configuração

$slowfs_cache_status

Representa a disponibilidade do arquivo em cache.

Os valores possíveis são: MISS, HIT e EXPIRED.

Exemplo de configuração

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

Testando

ngx_slowfs_cache vem com um conjunto completo de testes baseado em Test::Nginx.

Você pode testá-lo executando:

$ prove

Veja também

GitHub

Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-slowfs.