Когда вы включили кеширование в Nginx Plus, он сохраняет ответы на кэш-диске, и они в дальнейшем используются для ответа клиентам, не сохраняя каждый раз запрос прокси с одним и тем же контентом. Кэширование Nginx Plus имеет больше возможностей, в которые включены наиболее полезные функции, такие как очистка кеша, отложенное кэширование и кэширование динамического контента.
В этой статье мы узнаем больше о кешировании, например о том, как включить и отключить кеширование на сервере Nginx в системе Linux.
На верхнем уровне контекста http {} включите директиву proxy_cache_path для включения кэширования. Первый параметр, который является путем в локальной файловой системе для кэшированного содержимого, и параметр keys_zone, определяющий размер и имя зоны разделяемой памяти, являются обязательными. Последний параметр, keys_zone, хранит метаданные кешированных элементов:
http { ... proxy_cache_path /data/nginx/cache keys_zone=one:10m; }
Вы должны включить директиву proxy_cache, чтобы определить такие элементы, как (тип и местоположение протокола или адрес виртуального сервера) в контексте http. Через которую вы хотите кэшировать ответы сервера, укажите имя зоны, которое определяется параметром keys_zone в директиве proxy_cache_path (которая в данном случае является одной из них):
http { ... proxy_cache_path /data/nginx/cache keys_zone=one:10m; server { proxy_cache mycache; location / { proxy_pass http://localhost:8000; } } }
Следует отметить, что на общий объем кэшированного ответа не влияет размер, который определяется параметром keys_zone. Все кешированные ответы по отдельности сами сохраняются в определенных файлах с копией метаданных в вашей файловой системе. Однако, если вы хотите ограничить общий объем кэшированных данных ответа, вы можете включить параметр max_size в директиву в proxy_cache_path.
Все ответы остаются в кэше на неопределенный срок. Эти ответы удаляются только тогда, когда они превышают определенный максимальный размер и время, прошедшее с момента последнего запроса. Но вы можете установить в соответствии с вашими удобными средствами, в течение какого времени эти кэшированные ответы считаются действительными или даже если они используются разными директивами на сервере {}, http {} или в контексте местоположения {}. Однако, чтобы ограничить количество кешированных ответов, считающихся действительными, необходимо включить директиву с именем proxy_cache_valid.
Определим концепцию ограничения кеша на примере. В приведенном ниже примере 200 или 302 ответа кода считаются действительными в течение 10 минут, а 404 ответа действительны до 1 минуты.
proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m;
Таким образом, вы также можете определить действительность кэшированных ответов времени для всех кодов состояния, чтобы определить параметр ‘любой’, который вы также можете увидеть в следующей строке кода:
proxy_cache_valid any 5m;
Есть набор условий, при которых Nginx не отправляет кешированные ответы клиентам, поэтому включите директиву proxy_cache_bypass. Каждый параметр в приведенном ниже примере определяет условия и имеет ряд переменных. Если хотя бы один параметр не равен нулю ‘0’ или не пуст, Nginx не находит ответ в кеше и немедленно отправляет запросы на внутренний сервер.
proxy_cache_bypass $ cookie_nocache $ arg_nocache $ arg_comment;
При условии, что вы хотите, чтобы Nginx не кэшировал ответ. Затем вы включите директиву proxy_no_cache и определите все следующие параметры:
proxy_no_cache $ http_pragma $ http_authorization;
Кэширование предоставляет больше возможностей на сервере Nginx. В этой статье мы также изучили, как можно включить или отключить кеширование, включая все директивы и параметры. Чтобы узнать больше, вы можете получить дополнительную помощь в онлайн-ресурсах. Мы надеемся, что приведенная выше статья о кешировании будет для вас информативной.