Azure Verizon CDN - 100% кэш CONFIG_NOCACHE
Несколько дней назад я настроил CDN Azure Verizon Premium следующим образом:
Происхождение: веб-приложение Azure (веб-сайт.NET MVC 5).
Настройки: Пользовательский домен, без геофильтрации
Правила кеширования: стандартный кеш (не заботится о параметрах)
Сжатие: включено
Оптимизирован для: динамического ускорения сайта
Протоколы: HTTP, HTTPS, собственный домен HTTPS
Правила: принудительное использование HTTPS через механизм правил (если схема запроса = http, 301 перенаправить на https://{customdomain}/$1)
Итак, этот CDN работает уже несколько дней, но в отчетах ADN говорится, что почти 100% (99,36%) состояния кэша имеет значение "CONFIG_NOCACHE" (Описание: "Объект был настроен так, чтобы никогда не кэшироваться в соответствии с специфичные для клиента конфигурации, расположенные на пограничных серверах, поэтому ответ был обработан через исходный сервер.") Некоторые (0,64%) из них"NONE" (Описание:" Кэш был полностью обойден для этого запроса. Например, запрос был немедленно отклонен модулем авторизации токена, или метод запроса клиента использовал метод запроса без кэширования, такой как "PUT".") Кроме того, в отчете" Попадание в кэш "указано"0 попаданий, 0 пропусков "для каждого день. Ничто не проходит через "HTTP Large", только "ADN".
Я не мог найти эти точные сообщения при поиске, но я попытался:
- Обновление заголовка элемента управления кэшем до max-age, public (то есть: контроль кэша: public,max-age=1209600)
- Обновление заголовка элемента управления кешем до max-age (контроль кеша: max-age=1209600)
- Обновление заголовка expires до даты в будущем (expires: Tue, 19 Jan 2038 03:14:07 GMT)
- Использование разных браузеров, поэтому информация о кеше запросов будет разной. В Chrome запрос "контроль кеша: нет кеша" в моем браузере. В Firefox будет указано "Cache-Control: max-age=0". В любом случае, я бы предположил, что пользователи на сайте не будут иметь такие же настройки, верно?
- Обновление страницы несколько раз и просмотр отчета в реальном времени, чтобы увидеть статусы попаданий / пропусков / кэширования, и он показывает то же самое - CONFIG_NOCACHE почти для всего.
- Попытался запустить "всемирный" тест скорости на https://www.dotcom-tools.com/website-speed-test.aspx, но это дало тот же результат - куча "NOCACHE" хитов.
- Попытка добавить правила ВОПОГ, чтобы установить внутренний и внешний максимальный возраст 864000 сек (10 дней).
- Попытался добавить правило ADN, чтобы игнорировать запросы "без кэширования" и просто возвращать кэшированный результат.
Итак, сообщение "NOCACHE" говорит о том, что это проблема конфигурации узла... но я даже не настроил ее! Я весьма озадачен. Это также может быть проблема приложения, но я чувствую, что перепробовал все возможные варианты "управления кэшем". Вот пример одного файла, который я ожидаю кэшировать:
В конечном счете, я надеюсь, что большинство запросов кэшируются, поэтому я вижу, что большинство запросов будет "TCP Hit". Может быть, это неправильно? Заранее спасибо за помощь!
1 ответ
Итак, я в конце концов понял эту проблему. По-видимому, платформа Azure Verzion Premium CDN ADN по умолчанию включает "обходной кэш".
Чтобы отключить это поведение, вам нужно настроить дополнительные функции к вашим правилам кэширования.
Пример:
ЕСЛИ всегда
Особенности:
Обходной кэш отключен
Принудительная внутренняя реакция максимального возраста 200 864000 секунд
Игнорировать Origin No-Cache 200