Для эффективного использования Cache-control необходимо указывать правило инвалидации кеша. Т.е. указать срок, когда закешированный браузером файл необходимо будет заново запросить на сервере. В nginx'e это делается с помощью настройки expires:
server {
...
location ~* ^.+\.(jpg|gif|png)$ {
expires max;
}
...
}
# Установит время инвалидации в максимально возможное (фактически — бесконечность)
Время можно указывать в днях:
server {
...
location ~* ^.+\.(jpg|gif|png)$ {
expires 7d;
}
...
}
# Браузер будет запрашивать картинки повторно через 7 дней
Кроме этого, время инвалидации можно отсчитать от даты последнего изменения файла:
server {
...
location ~* ^.+\.(jpg|gif|png)$ {
expires modified 3d;
}
...
}
# Браузер будет запрашивать каждую картинку через 3 дня с момента ее последнего изменения
А чтобы отключить кеширование в браузере, необходимо отправить установить значение в off:
server {
...
location ~* ^.+\.(jpg|gif|png)$ {
expires off;
}
...
}
# Отключит Cache-control полностью