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.