Назад | Перейти на главную страницу

Nginx не уменьшает max-age

Я пытаюсь настроить Nginx в качестве обратного прокси для моего приложения Rails, работающего на Unicorn.

В моем приложении есть несколько общедоступных страниц, которые я хотел бы кэшировать на 60 минут, поэтому я установил заголовок max-age.

Кроме того, я добавил параметр proxy_cache в свой серверный блок в Nginx.

proxy_cache default;

и определил этот кеш

proxy_cache_path /var/www/nginx_cache keys_zone=default:10m max_size=500m;

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

Cache-Control: max-age=3600, public

Когда клиент попадает на страницу в первый раз, страница отображается и возвращается ответ. Однако при последующих запросах nginx не уменьшает счетчик максимального возраста.

В результате посетитель может перейти на мою страницу за одну минуту до истечения срока ее действия, то есть он видит контент давности 59 минут. Но затем оставьте эту копию в его браузере еще 60 минут, прежде чем он получит новую копию.

Могу ли я заставить Nginx вычесть прошедшее время, чтобы, если посетитель попадает на страницу, которая находилась в кеше Nginx в течение 25 минут, максимальный возраст будет 35 минут (2100 секунд)?

У вас совершенно неправильный подход.

Пожалуйста, прочтите больше о кешировании прокси Nginx http://nginx.org/en/docs/http/ngx_http_proxy_module.html

Это также может быть полезно: Как настроить Nginx как кэширующий обратный прокси?