scgi_cache
Директива 'scgi_cache' включает кэширование ответов SCGI-серверов в NGINX. — NGINX HTTP Core
Описание
Директива `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', так как они предназначены для разных протоколов.