Время когда чанк был закеширован
Maxim Dounin
mdounin на mdounin.ru
Чт Май 8 13:21:06 UTC 2025
Hello!
On Thu, May 08, 2025 at 11:25:06AM +0300, Peter Volkov wrote:
> Привет. У нас nginx стоит в качестве кеша для статики. При запросе файла с
> сервера я вижу вот такие заголовки:
>
> < Server: nginx
> < Date: Thu, 08 May 2025 08:15:39 GMT
> < Content-Type: video/mp2t
> < Content-Length: 4635140
> < Connection: keep-alive
> < Keep-Alive: timeout=20
> < Last-Modified: Tue, 17 Sep 2024 13:44:14 GMT
> < ETag: "66e987ae-46ba04"
> < X-Cache-Status: HIT
> < Accept-Ranges: bytes
>
> Date - это текущее время запроса.
> Last-Modified это время создания файла (на бекенде).
> Вопрос, как можно понять время, когда чанк был закеширован? Я посмотрел
> список переменных Nginx, но не нашёл ничего подходящего.
Если по условиям задачи мы можем доверять заголовку Date от
бэкенда (обычно это так, но бывают исключения), то его можно
увидеть в переменной $upstream_http_date. Для ответов в кэше это
и будет время, когда ответ попал в кэш.
Начиная с freenginx 1.27.3 есть также переменная
$upstream_cache_age, показывающая суммарное время нахождения
ответа в кэше (точнее, кэшах, переданный бэкендом заголовок Age
также учитывается), подробнее тут:
https://freenginx.org/r/$upstream_cache_age
https://freenginx.org/hg/nginx/rev/e46e1ea89ccd
> P.S. это nginx, а не freenginx, но у нас ещё та версия, когда они были
> едины, поэтому надеюсь это не офтопик тут.
Тут в целом нет проблем с любыми обсуждениями.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru