fastcgi_cache_revalidate
Директива 'fastcgi_cache_revalidate' управляет тем, будет ли NGINX повторно проверять кешированные ответы FastCGI. — NGINX HTTP Core
Описание
Директива 'fastcgi_cache_revalidate' в NGINX позволяет более тонко контролировать повторную проверку кешированных ответов от FastCGI-бэкендов. Когда эта директива установлена в 'on', NGINX будет отправлять условные запросы с использованием заголовков 'If-Modified-Since' или 'If-None-Match' на основе кешированного содержимого. Это гарантирует, что если содержимое изменилось на бэкенде, клиент получит обновлённый ответ соответственно. Такое поведение помогает поддерживать кешированное содержимое актуальным, одновременно минимизируя ненужные запросы к бэкенду, что может улучшить производительность в средах с динамическим содержимым, которое не меняется часто. В противоположность этому, когда значение установлено в 'off', NGINX будет отдавать кешированные ответы без запроса к бэкенду на предмет обновлений, что может привести к отдаче устаревшего содержимого, если исходные данные изменились. Директива особенно полезна при работе с содержимым, частота обновления которого непредсказуема, так как она находит баланс между обслуживанием из кеша и обеспечением того, чтобы пользователи получали наиболее свежую версию ответа, не теряя преимуществ эффективности кеширования.
Пример конфига
http {
fastcgi_cache_path /var/cache/nginx/fastcgi_tmp levels=1:2 keys_zone=my_cache:10m;
server {
location /fastcgi {
include fastcgi_params;
fastcgi_pass backend;
fastcgi_cache my_cache;
fastcgi_cache_revalidate on;
}
}
}Убедитесь, что ваше backend FastCGI-приложение поддерживает conditional GET-запросы, чтобы эта директива была эффективной.
Использование этой директивы с очень часто изменяющимся контентом может привести к чрезмерному количеству backend-запросов, нивелируя преимущества кэширования.