Маршрутизация запросов приложений без очистки файлов кэша
Я настроил ARR как обратный прокси-сервер, который выполняет кэширование вывода. Тэги кэша имеют TTL 20 минут, но кажется, что файлы кэша остаются на диске навсегда.
TTL настраивается в файле приложения Web.config в соответствии с правилами перезаписи:
<rule name="Default ARR cache control" enabled="true">
<match url=".*" />
<serverVariables>
<!-- First arg of value is: 1 to be always active, 0 only if there are no cache headers set. -->
<set name="ARR_CACHE_CONTROL_OVERRIDE" value="0,max-age=1200" />
</serverVariables>
</rule>
В ответах HTTP я также могу правильно увидеть этот максимальный возраст, и кэш действительно истекает, я получаю новые результаты. Если я открою файл кэша, он также будет включать Cache-Control: public, max-age=1200
в заголовке.
Однако файлы кэша остаются, даже если они не используются. "Интервал очистки кэша" установлен на 5 минут для кэширования диска, поэтому я предполагаю, что файлы должны оставаться там не более 25 минут, но есть и месячные.
Что мне не хватает, как я могу заставить ARR удалять устаревшие файлы кэша?
Здесь объясняется, как scavenge.exe может использоваться для очистки файлов кэша на дополнительном диске, но ничего не о первичном. Или я должен вручную запустить эту утилиту, если у меня нет одного кеша для медленного заполнения?
1 ответ
Кажется, я неправильно понял, как должны работать эти конфиги, и "интервал очистки кэша" работает вместе с "высоким порогом использования диска".
Так, может быть, файлы очищаются каждые 5 минут, но только при достижении "верхнего порога использования диска"? Похоже, что это действительно так, как подробно описано в этом посте: я только что настроил "Низкий порог использования диска" как 4 (проценты), "Высокий порог использования диска" как 5 и да, многие файлы были вскоре удалены,