fastcgi_cache_bypass
Директива `fastcgi_cache_bypass` позволяет указать условия, при которых кэш FastCGI должен быть пропущен. — NGINX HTTP Core
Описание
Директива `fastcgi_cache_bypass` является частью HTTP-модуля NGINX и используется для управления механизмами кэширования FastCGI. При настройке эта директива принимает одно или несколько условий (переменные или атрибуты запроса клиента), которые определяют, когда NGINX должен пропустить кэшированный ответ и вместо этого получить свежий от upstream-сервера. Она особенно полезна в ситуациях, когда необходимо гарантировать возврат клиентам самых актуальных данных в зависимости от их запросов или определённых условий, таких как конкретные заголовки, куки или параметры запроса, которые указывают на то, что нужен динамический ответ, а не закэшированный. Эту директиву можно задать в контекстах `http`, `server` или `location`, что даёт гибкость в области её применения. Как правило, используют переменные, такие как `$arg_argname` для обращения к конкретным параметрам запроса, `$http_cookie` для кук, или даже пользовательские заголовки приложения для создания соответствующих условий обхода. Это помогает оптимизировать использование ресурсов, позволяя при необходимости отдавать устаревшие данные, одновременно обеспечивая выдачу самых свежих данных, когда это необходимо. В сочетании с другими директивами, связанными с кэшированием FastCGI, такими как `fastcgi_cache` и `fastcgi_cache_key`, она обеспечивает надёжную стратегию кэширования для повышения производительности при сохранении актуальности содержимого в зависимости от взаимодействия с пользователем и чувствительности данных.
Пример конфига
location / {
fastcgi_pass backend;
fastcgi_cache my_cache;
fastcgi_cache_bypass $http_cache_bypass;
}Убедитесь, что указанное условие корректно совпадает с ожидаемыми атрибутами запроса; в противном случае кэш может не быть обойден, когда это необходимо.
Использование слишком большого количества условий может привести к проблемам с производительностью из-за чрезмерных промахов кэша и повышенной нагрузки на бэкенд-серверы.