как передать cache-control заголовок от апстрима в браузер

Maxim Dounin mdounin на mdounin.ru
Ср Сен 21 10:01:19 UTC 2022


Hello!

On Wed, Sep 21, 2022 at 11:09:18AM +0300, VovansystemS wrote:

> nginx используется как кеширующий реверс-прокси, апстрим с Апачем
> выставляет заголовок:
> Cache-Control: public, max-age=0, must-revalidate
> 
> Nginx руководствуется этим заголовком для того, чтобы определить каким
> образом кешировать ответ апстрима, но посетителю Nginx отдаёт ответ с
> заголовком:
> Cache-Control: no-cache,no-store
> 
> Необходимо сделать так, чтобы заголовок "Cache-Control: public,
> max-age=0, must-revalidate" получал посетитель (браузер). Как лучше
> всего этого добиться?

Убрать конфигурацию, которая прячет исходный заголовок 
Cache-Control (proxy_hide_header?) и добавляет вместо него 
"no-cache,no-store"?

По умолчанию nginx отдаёт клиенту ровно тот заголовок 
Cache-Control, какой получил от бэкенда.  Чтобы вернуть что-то 
другое - нужно это явно сконфигурировать.  Причём получить "no-store" с 
помощью простых стандартных механизмов, как то директива expires, 
не получится.  То есть либо у вас это должно быть явно в конфиге 
nginx'а, либо такой заголовок всё-таки возвращает бэкенд.

-- 
Maxim Dounin
http://mdounin.ru/



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