У меня есть папка с изображениями на моем сервере, которая используется как для обслуживания мобильного приложения через CDN, так и для работы с внутренним веб-приложением, используемым для управления контентом, доставляемым в приложение. Для последнего — внутреннего веб-приложения — я хочу убедиться, что изображения, доставляемые из рассматриваемой папки, не кэшируются браузером, чтобы я мог показывать обновленные версии в внутреннем приложении, как только они будут обновлены их автором. CDN извлекает те же изображения для доставки в мобильное приложение и имеет настройки обновления на 30 минут, чтобы не доставлять устаревшие изображения контента.
Мой вопрос - как настроить Nginx так, чтобы он вводил заголовок expires epoch
только для запросов, исходящих из веб-приложения. Часть ответа на этот вопрос находится вэта тема ТАК. Есть ли способ изменить предложенное там решение так, чтобы оно проверяло реферер перед внедрением заголовка? Так, например, на все запросы, исходящие от , https://example.com/backoffice
дается ответ с expires epoch
заголовком, а на другие — например, поступающие из запросов на извлечение CDN — нет.
решение1
if
Здесь должно быть достаточно простого :
server {
location ... {
if ($http_referer ~* ^https://example.com/backoffice) {
expires epoch;
}
}
}
Имейте в виду, что в целом этозначительнопредпочтительнее, чтобы ваше веб-приложение принимало решения о кэшировании и отвечало соответствующими директивами.