Re: Не работает map c переменными $status и $upstream status

Pavel V. pavel2000 на ngs.ru
Вт Авг 2 17:53:44 UTC 2016


Здравствуйте, YuriV.

Вы писали 3 августа 2016 г., 0:08:13:

> Доброго времени суток.
> Возникла тут задачка кэшировать на nginx ТОЛЬКО 200-е ответы от апстрима, но
> при условии, что поддерживаются заголовки кэширования от бэкэнда.

Вы хотите странного - придумали какие-то "заголовки кэширования от
бэкенда", но смысла их так и не объяснили.

В чем в вашем понимании разница между "бэкэнд" и "апстрим"?

Кеш - это кеш. Он предназначен для уменьшения количества запросов на бэкенд.
Если бэкэнд отдал ответ, то отдавать ответ из кеша уже не имеет смысла.
Ответ бэкенда более актуален, чем то, что находится в кеше, так что надо отдать
ответ бэкенда, а кеш надо обновить.

Не вполне ясно, чего вы пытаетесь достичь.

> Сделал вывод в кустомный лог переменной $do_cache - независимо от статуса,
> который приходит с апстрима, она всегда равна дефолту мапы...

Мапа вычисляется и сохраняется момент первого обращения к переменной.
Оно происходит во время обработки директивы proxy_cache_bypass. В это время
$upstream_status не равен 200, т.к. обращения к апстриму не происходило.

-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru



Подробная информация о списке рассылки nginx-ru