Рейтинг:0

NGINX: Могу ли я использовать директиву proxy_no_cache с телом ответа восходящего потока для условного кэширования?

флаг cn

Мы используем Ngnix в качестве кэш-прокси перед сторонней службой и имеем следующую директиву для обеспечения кэширования восходящих ответов с кодом состояния 200...

proxy_cache_valid 200 364d

Проблема в том, что сторонняя служба возвращает 200, когда для данного поиска не найдено результатов. На это указывает параметр JSON в теле ответа, документы: [].

Можно ли использовать proxy_no_cache, или любую другую директиву с регулярным выражением в содержимом основной части восходящего потока, чтобы мы не кэшировали эти «пустые» ответы? Также отсутствуют заголовки, указывающие на «пустой» ответ.

ТИА

Рейтинг:0
флаг us

Нет. nginx не делает полезную нагрузку ответа доступной в виде переменной. Это минимум, необходимый для того, чтобы сделать что-то подобное.

Вы можете создать другое приложение, которое выполняет восходящий запрос, анализирует ответ и устанавливает заголовок HTTP, который сообщает nginx, следует ли кэшировать ответ или нет. Или он может напрямую установить ответ 404 для пустых ответов.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.