Re: Не работает map c переменными $status и $upstream status
Maxim Dounin
mdounin на mdounin.ru
Ср Авг 3 16:04:39 UTC 2016
Hello!
On Wed, Aug 03, 2016 at 11:54:16AM -0400, YuriV wrote:
> C учетом особенностей кода nginx эта директива тоже абсолютно бесполезна :(
> - у неё те же самые параметры, что и у proxy_cache_bypass. Т.е. она точно
> также не может полагаться на код ответа от бэка.
Полёт вашей мысли причудлив и занимателен, но, вероятно, никому
кроме вас - не понятен. Двайте я поясню, как оно работает, а вы
уже решайте, насколько ваши мысли об этом совпадают с реальностью.
И если вдруг совпадают - то поясните, что именно приводит вас к
мысли о бесполезности.
При использовании кеша есть два момента времени, в которые можно
принимать какие-то решения.
1. Первый момент - когда nginx получил запрос от клиента и думает,
что именно отвечать. В этот момент он может воспользоваться
кешом, и, если там есть ответ, вернуть его клиенту. Если этого
делать не надо - то есть директива proxy_cache_bypass, которая
позволяет "пропустить" использование кеша. Но, очевидно, пытаться
использовать что-либо из ответа бекенда в этот момент нельзя -
т.к. к бекенду никто ещё не обращался.
2. Второй момент - когда nginx cходил на бекенд, получил ответ, и
решает, сохранять ли его в кеш. В этот момент сохранение можно
явно запретить с помощью директивы proxy_no_cache. И в ней вполне
можно (и зачастую нужно) использовать то, что ответил бекенд. Ибо
мы как раз решаем, сохранять ли полученный ответ.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru