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

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

Установка на Debian/Ubuntu

Эти документы относятся к APT пакету nginx-module-slowfs, предоставленному репозиторием GetPageSpeed Extras.

  1. Настройте APT репозиторий, как описано в настройке APT репозитория.
  2. Установите модуль:
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

См. также