slowfs: Модуль кэша SlowFS для NGINX
Установка на Debian/Ubuntu
Эти документы относятся к APT пакету nginx-module-slowfs, предоставленному репозиторием GetPageSpeed Extras.
- Настройте APT репозиторий, как описано в настройке APT репозитория.
- Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-slowfs
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия | Компонент | Архитектуры |
|-------------|-------------------|-------------|----------------|
| debian | bookworm | main | amd64, arm64 |
| debian | bookworm-mainline | main | amd64, arm64 |
| debian | trixie | main | amd64, arm64 |
| debian | trixie-mainline | main | amd64, arm64 |
| ubuntu | focal | main | amd64, arm64 |
| ubuntu | focal-mainline | main | amd64, arm64 |
| ubuntu | jammy | main | amd64, arm64 |
| ubuntu | jammy-mainline | main | amd64, arm64 |
| ubuntu | noble | main | amd64, arm64 |
| ubuntu | noble-mainline | main | amd64, arm64 |
ngx_slowfs_cache — это модуль nginx, который позволяет кэшировать статические файлы (обслуживаемые с помощью директивы root). Это позволяет создавать быстрые кэши для файлов, хранящихся на медленных файловых системах, например:
- хранилище: сетевые диски, кэш: локальные диски,
- хранилище: 7,2K SATA-диски, кэш: 15K SAS-диски в RAID0.
ВНИМАНИЕ! Нет смысла использовать этот модуль, если кэш размещён на дисках той же скорости, что и оригинал.
Спонсоры
ngx_slowfs_cache был полностью профинансирован c2hosting.com.
Статус
Этот модуль готов к производству и совместим со следующими версиями nginx:
- 0.7.x (тестировалось с 0.7.60 по 0.7.69),
- 0.8.x (тестировалось с 0.8.0 по 0.8.55),
- 0.9.x (тестировалось с 0.9.0 по 0.9.7),
- 1.0.x (тестировалось с 1.0.0 по 1.0.15),
- 1.1.x (тестировалось с 1.1.0 по 1.1.19),
- 1.2.x (тестировалось с 1.2.0 по 1.2.7),
- 1.3.x (тестировалось с 1.3.0 по 1.3.14).
Примечания по конфигурации
Значения 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