Как включить только кэш общего прокси (nginx), а не частный (браузер), используя заголовки контроля кэша? - PullRequest
0 голосов
/ 22 апреля 2019

Мы используем NGINX в качестве обратного прокси + веб-сервера, и я пытаюсь использовать заголовки Cache-Control для включения кэширования ответов API.Однако я хочу включить его только для общих кешей (прокси-кеша nginx), а не для приватного (например, кеша браузера).По сути, я не хочу, чтобы мой интерфейс использовал кэшированные результаты, но я хочу, чтобы другие сервисы использовали кэшированные результаты.

Я пытался использовать заголовок Cache-Control с max-age установленным в 0 и s-maxage до определенного значения (скажем, 5s), однако, это не работает с nginx.

Вот как выглядит мой заголовок -

Cache-Control: public, max-age=0, s-maxage=5

Я ожидаю, что он НЕ будет кэшироваться в браузере (что он делает правильно), но он также не кэшируется и в nginx (которыйчто я не хочу -> я хочу, чтобы он был кэширован на nginx).

После некоторого прочтения я понял, что nginx не уважает s-maxage.И поэтому возникает вопрос: есть ли другой способ добиться этого с помощью nginx?

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

...