proxy_cache_convert_head

Директива 'proxy_cache_convert_head' контролирует, может ли запрос HEAD возвращать кэшированные данные для запроса GET.

Синтаксисproxy_cache_convert_head on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива 'proxy_cache_convert_head' используется в конфигурациях NGINX для определения того, должен ли HTTP-запрос HEAD отдавать кэшированный ответ на основе соответствующего запроса GET. Эта директива позволяет системе кэширования внутренне преобразовывать запрос HEAD в запрос GET, если доступна действующая кэшированная версия, что повышает производительность за счёт исключения повторного получения данных с upstream-сервера при каждом HEAD-запросе. Такое поведение особенно полезно для приложений, которые интенсивно используют HEAD-запросы, позволяя им использовать кэш без необходимости генерации нового ответа со стороны upstream-сервера при каждом обращении.

При значении 'on' эта функция изменяет обработку запросов, что может привести к более быстрому ответу на HEAD-запросы. Напротив, при значении 'off' сервер не будет использовать кэшированные ответы, сгенерированные для GET, при обработке HEAD, что потенциально увеличивает время ответа на HEAD-запросы, поскольку им придётся обращаться к upstream-серверу напрямую. Директиву можно задавать в различных контекстах, включая http, server и location, что обеспечивает гибкость её использования в разных HTTP-конфигурациях NGINX.

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

http {
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m;
    server {
        location / {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_convert_head on;
        }
    }
}

Убедитесь, что вышестоящий сервер корректно обрабатывает запросы GET и HEAD для одного и того же ресурса.

Имейте в виду, что чрезмерное использование кэшированных ответов HEAD в некоторых случаях может приводить к устаревшим данным.

← Ко всем директивам