Welcome! Log In Create A New Profile

Advanced

Re: proxy_cache & cache-control

Maxim Dounin
October 19, 2016 07:46AM
Hello!

On Wed, Oct 19, 2016 at 12:57:18AM +0100, Anton Kiryushkin wrote:

> Здравствуйте.
>
> У меня два вопроса к собравшимся.
> 1. Чем обсуловлено условие, по которому add_headers и expires нельзя
> добавить для кода ответа 502. Его можно кэшировать, но нельзя пытаться
> управлять этим кэшированием. Например, с помощью expires.
> 2. Собственно сам этот expires и cache-control, похоже, не сильно-то
> жалуются самим nginx.
>
> Решил проверить, что будет, если разрешить добавлять заголовки для 502-го
> кода и с помощью именованного локейшена их туда добавил. Nginx, который
> стоит выше уровнем отлично это дело прокэшировал и получились вот такие
> чудесные заголовки:
>
> HTTP/1.1 502 Bad Gateway
> Server: nginx
> Date: Tue, 18 Oct 2016 23:45:07 GMT
> Content-Type: text/html
> Content-Length: 169
> Connection: close
> Expires: Tue, 18 Oct 2016 23:46:07 GMT
> Cache-Control: max-age=120,public,must-revalidate
>
> В конфиге написано, что 502-й код можно кэшировать только на минуту.
> На деле выходит, что даже в 23:46:07 элемент все еще находится в кэше. Ждем
> еще минуту и чудо все равно не случается. Nginx игнорирует этот элемент
> кэша. Почему/зачем совершенно не понятно.
>
> Может кто-то тут сможет дать совет, как лучше поступить?

Для начала стоит разобраться, что вы понимаете под словами "всё
ещё находится в кэше" и "чудо". Ответ будет находится в кеше до
достижения времени inactive, указанного в директиве
proxy_cache_path, по умолчанию - 10 минут, либо до принудительного
удаления по max_size, указанного там же.

Следует, однако, различать состояния "находится" и "будет
использоваться для ответов пользователям". После достижения
заданного времени ответ, даже находящийся в кеше, считается
устаревшим и перестаёт использоваться кроме как для нужд директивы
proxy_cache_use_stale.

Отмечу так же, что в соответствии с "max-age=120" в заголовке
Cache-Control, приведённый выше ответ устареет через 2 минуты
(если в конфиге не сказано игнорировать Cache-Control). Заголовок
Cache-Control имеет больший приоритет, чем Expires, и оба имеют
приоритет над директивой proxy_cache_valid.

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

proxy_cache & cache-control

Anton Kiryushkin October 18, 2016 07:58PM

Re: proxy_cache & cache-control

Maxim Dounin October 19, 2016 07:46AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 299
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready