Удаляет ли nginx файлы в каталоге кеша
У меня есть несколько серверов с nginx в качестве кеша для больших статических файлов.
В связи с необходимостью изменения дискового пространства и т. Д. Я изменил размер кэша, а также разделил его на несколько мест.
Однако у меня есть один вопрос: удалит ли nginx какие-либо файлы в каталоге кеша, если они не будут использованы в течение "неактивного" периода времени?
В основном я хочу знать, если я внес изменения, которые приведут к тому, что файлы в местоположении кэша не будут обновляться никакими запросами, придется ли мне удалять их самостоятельно, чтобы освободить это пространство, или nginx будет рассматривать все файлы в любом каталоге кэша как кандидаты на выселение?
1 ответ
Документация nginx на http://nginx.org/en/docs/http/ngx_http_proxy_module.html состояниях
Кэшированные данные, к которым нет доступа в течение времени, указанного в неактивном параметре, удаляются из кэша независимо от их актуальности. По умолчанию неактивно установлено значение 10 минут.
А также
Специальный процесс "менеджер кеша" отслеживает максимальный размер кеша, установленный параметром max_size. Когда этот размер превышен, он удаляет наименее недавно использованные данные. Данные удаляются в итерациях, настроенных параметрами manager_files, manager_threshold и manager_sleep (1.11.5). За одну итерацию удаляется не более элементов manager_files (по умолчанию 100). Продолжительность одной итерации ограничена параметром manager_threshold (по умолчанию 200 миллисекунд). Между итерациями делается пауза, настроенная параметром manager_sleep (по умолчанию 50 миллисекунд).
На основании этой информации nginx контролирует используемое дисковое пространство.
Если вы определяете несколько proxy_cache_path
записи с разными keys_zone=name:size
записей, каждая запись имеет собственную декларацию и подсчет неактивного времени / максимального размера файлов.
Итак, если ваш keys_zone
cache1
а также keys_zone
cache2
максимальный размер 10 ГБ каждый, тогда ваш кэш может занимать в общей сложности 20 ГБ.