proxy_cache_bypass
Директива `proxy_cache_bypass` управляет тем, будут ли отдельные запросы обходить прокси-кэш в NGINX.
Описание
Директива proxy_cache_bypass используется в контекстах HTTP, server или location для задания условий, при которых запрос должен обходить прокси-кэш. Она принимает один или несколько аргументов, которые могут быть переменными, встроенными переменными nginx или любыми другими допустимыми идентификаторами, которые при оценке дают истинное значение в контексте решения о пропуске кэша. Когда совпадающее условие выполнено, NGINX обслуживает запрос напрямую с исходного сервера вместо возвращения кэшированной версии, что позволяет отдавать динамические ответы для отдельных запросов, одновременно продолжая использовать кэш для остальных.
Эта директива особенно полезна, когда определённые запросы не должны кэшироваться, например запросы, содержащие чувствительные данные, специфичные для пользователя, или динамический контент, который часто меняется. Например, можно настроить обход кэша, если присутствуют определённые куки или заголовки запроса. Это обеспечивает детальный контроль над поведением кэша и оптимизирует производительность, гарантируя, что в кэше будет отдаваться только подходящий контент, в то время как остальная часть данных по-прежнему может кэшироваться и подаваться эффективно.
Пример конфига
location / {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_bypass $cookie_nocache;
}Убедитесь, что указанная переменная или выражение корректно вычисляются, чтобы избежать непреднамеренного поведения кэширования.
Слишком общие условия могут привести к чрезмерному количеству промахов кэша, что негативно скажется на производительности и увеличит нагрузку на сервер.