scgi_cache

Директива 'scgi_cache' включает кэширование ответов SCGI-серверов в NGINX. — NGINX HTTP Core

scgi_cache
httpserverlocation
Синтаксисscgi_cache path;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `scgi_cache` используется в контексте HTTP-сервера или блока location в NGINX, позволяя кэшировать ответы SCGI (Simple Common Gateway Interface). Когда эта директива задана с путём к зоне кэша, все ответы от upstream SCGI-сервера сохраняются в этом кэше, что позволяет снизить задержки и уменьшить нагрузку на бэкенд-сервер при последующих запросах. Поведение кэширования далее контролируется дополнительными параметрами и директивами, такими как `scgi_cache_key`, которая определяет, как индексируются элементы кэша, и `scgi_cache_path`, которая задаёт расположение хранилища кэша и его конфигурацию. Директива работает совместно с другими конфигурациями, связанными с SCGI. Например, указание `scgi_pass` направит трафик к upstream SCGI-серверу, в то время как `scgi_cache_valid` может определять, как долго ответ может храниться в кэше в зависимости от кода состояния HTTP. Важно эффективно управлять размером кэша и сроками хранения, чтобы избежать устаревших данных или чрезмерного использования памяти. Кэширование может значительно улучшить производительность, но требует тщательной настройки для поддержания эффективности.

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

http {
    scgi_cache /var/cache/scgi;
    server {
        location /app {
            scgi_pass backend;
            scgi_cache my_cache;
            scgi_cache_valid 200 1h;
        }
    }
}

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

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

Не путайте 'scgi_cache' с 'proxy_cache', так как они предназначены для разных протоколов.