Как реализовать очистку кеша с помощью EXE-файлов из NGINX

У меня есть клиент, у которого есть один из этих интернет-провайдеров, который реализует кэш для ускорения просмотра веб-страниц. Это заставило его не загружать последнюю версию EXE с нашего сервера NGINX после обновления этого EXE нашими разработчиками. Есть ли способ перехватить EXE-запросы от нашего NGINX и реализовать заголовок блокировки кеша?

NGINX версии 1.14.0

Ubuntu Server версии 18.04.2

1
задан 1 March 2019 в 21:05
2 ответа
  • - это рекомендация, а не гарантия. chaches может игнорировать заголовки. Стандарты могут сказать «НЕ ДОЛЖНЫ», но ни один из них не следует стандартам: особенно, если они могут сэкономить деньги.

Я вижу два возможных решения:

  • использование номеров версий в пути URL или имени файла EXE будет больше надежнее, чем заголовки управления кешем, потому что кеш будет рассматривать новую версию как другой ресурс.

  • HTTP небезопасен, ваш клиент может быть уязвим для атак MITM, заменяющих вредоносное ПО. Использование HTTPS для обслуживания файлов блокирует большую часть кеширования и защищает от атак MITM.

Однако в случаях, когда клиент доверил третьей стороне кэширование своего HTTPS-трафика (и установил для этого корневой сертификат третьей стороны), первое решение: использование уникального URL-адреса для каждой версии будет необходимо.

Проблема с изменением URL-адреса загрузки может быть решена путем открытия страницы загрузки с помощью запроса HTTP POST, поскольку ничто не кэширует ответы POST.

1
ответ дан 3 December 2019 в 20:09

AFAIK не содержит заголовков очистки кеша.

Вы можете управлять только временем жизни кеша, и это, конечно же, с помощью Cache-Control . Либо вы даете указание клиентам кэшировать ваши EXE-файлы на то или иное время, либо не кэшировать вообще.

Нет никакого волшебного заголовка, который вы отправляете клиентам, которым уже было приказано кэшировать актив на определенное время, чтобы чтобы они перестали использовать кешированную версию. Они просто не будут консультироваться с вашим сервером , если у них в настоящее время есть допустимая запись в кеше для этого ресурса.

Если вы не можете позволить себе изменить URL-адреса, что было бы стандартной практикой очистки кеша, ваш выбор либо очень недолговечный кеш или его нет вообще:

location ~ \.exe {
    expires -1;
}

Что приведет к Cache-Control: no-cache .

1
ответ дан 3 December 2019 в 20:09

Теги

Похожие вопросы