Перейти к содержанию

slowfs: Модуль кэша SlowFS для NGINX

Установка

Вы можете установить этот модуль на любой дистрибутив, основанный на RHEL, включая, но не ограничиваясь:

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

Включите модуль, добавив следующее в верхнюю часть файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_slowfs_module.so;

Этот документ описывает nginx-module-slowfs v1.11, выпущенный 23 августа 2020 года.


ngx_slowfs_cache — это модуль nginx, который позволяет кэшировать статические файлы (обслуживаемые с помощью директивы root). Это позволяет создавать быстрые кэши для файлов, хранящихся на медленных файловых системах, например:

  • хранилище: сетевые диски, кэш: локальные диски,
  • хранилище: 7,2K SATA диски, кэш: 15K SAS диски в RAID0.

ПРЕДУПРЕЖДЕНИЕ! Нет смысла использовать этот модуль, если кэш размещен на дисках той же скорости, что и оригинал.

Спонсоры

ngx_slowfs_cache был полностью профинансирован c2hosting.com.

Примечания по конфигурации

Значения slowfs_cache_path и slowfs_temp_path должны указывать на одну и ту же файловую систему, в противном случае файлы будут скопированы дважды.

В настоящее время ngx_slowfs_cache не работает, когда включен AIO.

Директивы конфигурации

slowfs_cache

  • синтаксис: slowfs_cache zone_name
  • по умолчанию: none
  • контекст: http, server, location

Устанавливает область, используемую для кэширования (предварительно определенную с помощью slowfs_cache_path).

slowfs_cache_key

  • синтаксис: slowfs_cache_key key
  • по умолчанию: none
  • контекст: http, server, location

Устанавливает ключ для кэширования.

slowfs_cache_purge

  • синтаксис: slowfs_cache_purge zone_name key
  • по умолчанию: none
  • контекст: location

Устанавливает область и ключ, используемые для очистки выбранных страниц из кэша.

slowfs_cache_path

  • синтаксис: slowfs_cache_path path [levels] keys_zone=zone_name:zone_size [inactive] [max_size]
  • по умолчанию: none
  • контекст: http

Устанавливает область кэша и его структуру.

slowfs_temp_path

  • синтаксис: slowfs_temp_path path [level1] [level2] [level3]
  • по умолчанию: /tmp 1 2
  • контекст: http

Устанавливает временную область, где файлы хранятся перед перемещением в область кэша.

slowfs_cache_min_uses

  • синтаксис: slowfs_cache_min_uses number
  • по умолчанию: 1
  • контекст: http, server, location

Устанавливает количество использований, после которого файл копируется в кэш.

slowfs_cache_valid

  • синтаксис: slowfs_cache_valid [reply_code] time
  • по умолчанию: none
  • контекст: http, server, location

Устанавливает время, в течение которого файл будет обслуживаться из кэша.

slowfs_big_file_size

  • синтаксис: slowfs_big_file_size size
  • по умолчанию: 128k
  • контекст: http, server, location

Устанавливает минимальный размер файла для big файлов. Рабочие процессы fork() дочерний процесс перед тем, как начать копировать big файлы, чтобы избежать каких-либо сбоев в обслуживании.

Переменные конфигурации

$slowfs_cache_status

Представляет доступность кэшированного файла.

Возможные значения: MISS, HIT и EXPIRED.

Пример конфигурации

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

Тестирование

ngx_slowfs_cache поставляется с полным набором тестов на основе Test::Nginx.

Вы можете протестировать его, запустив:

$ prove

См. также

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-slowfs.