proxy_cache_key

Директива `proxy_cache_key` задаёт ключ, используемый для кэширования проксированных ответов.

Синтаксисproxy_cache_key key_string;
По умолчанию$scheme$request_method$host$request_uri
Контекстhttp, server, location
Аргументы1

Описание

Директива proxy_cache_key определяет, как NGINX формирует ключ кэша для ответов, хранящихся в прокси-кэше. По умолчанию она объединяет протокол, хост, URI и строку запроса, чтобы создать уникальный идентификатор кэша для каждого запроса. Настраивая ключ кэша, вы можете изменить поведение кэширования и получить более тонкий контроль над тем, что сохраняется в кэше. Ключ может использовать переменные, что позволяет динамически генерировать ключ на основе параметров запроса, заголовков или других контекстных данных.

Синтаксис proxy_cache_key позволяет определить пользовательскую строку ключа, которая может состоять из статического текста и переменных. Например, можно включить $request_uri, $remote_addr и другие переменные, чтобы различать кэшируемый контент. Такая гибкость позволяет хранить несколько версий ответа на основе сессий пользователей или других критериев, повышая возможности вашего веб-кэша. Обратите внимание, что изменение ключа кэша требует хорошего понимания кэшируемого содержимого и того, как пользователи с ним взаимодействуют, чтобы избежать ненужных промахов кэша или перезаписи.

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

http {
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m;
    server {
        location / {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_key "$scheme$request_method$host$request_uri";
        }
    }
}

Убедитесь, что создаваемый пользовательский ключ кэша не приводит к чрезмерной фрагментации кэша, поскольку слишком детализированные ключи могут снизить частоту попаданий в кэш.

Если вы используете переменные в ключе кэша, будьте внимательны к последствиям для производительности, так как лишняя сложность может добавить накладные расходы при обращениях к кэшу.

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