ajp_cache_key
Директива `ajp_cache_key` определяет ключ кэша для ответов от AJP-бэкенда в NGINX.
Описание
Директива ajp_cache_key позволяет пользователям NGINX указать, какие компоненты составляют ключ кэша для ответов по протоколу AJP. Эта директива позволяет влиять на то, какие части запроса будут учитываться при кэшировании ответов, что критично в ситуациях, когда разные запросы могут приводить к одинаковому ответу. Такая гибкость особенно важна для приложений, которые зависят от данных, специфичных для пользователя, например, от файлов cookie. По умолчанию ключ кэша не включает имя хоста, что может привести к конфликтам в кэше в средах, использующих поддомены.
Чтобы настроить подходящий ключ кэша, директива принимает строку на основе переменных, позволяя включать заголовки запроса, URI запроса и даже файлы cookie. Например, конфигурация, такая как ajp_cache_key "$host$request_uri$cookie_user";, включает имя хоста, URI запроса и пользовательскую cookie. Это гарантирует, что ответы разных пользователей будут корректно кэшироваться и не будут смешиваться с ответами, которые могут совпадать по части структуры URL, но отличаться по контексту.
Пример конфига
location / {
ajp_pass tomcats;
ajp_cache_key "$scheme$host$request_uri";
}Пропуск $host в конфигурациях поддоменов может привести к конфликтам кэша.
Использование слишком широких ключей кэша может привести к чрезмерному использованию памяти из-за увеличения числа записей в кэше.