Я пытаюсь настроить 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 как кэширующий обратный прокси?