Минимальное время кеширования

Евгений Удовихин eudovihin at gmail.com
Fri Oct 3 16:51:51 UTC 2014


Добрый день.

Некий php-скрипт отдает в ответ на запрос время в секундах, оставшееся до
события. В связи с сотнями запросов в секунду к скрипту, возникла
необходимость кешировать ответ.

Создал кеш
proxy_cache_path /tmp/an_cache levels=1 keys_zone=pagecache:1m max_size=1m;

Прописал в location
     proxy_cache             pagecache;
     proxy_cache_valid       200 1s;
     proxy_ignore_headers Expires Cache-Control;
     if ($arg_callback) {
        set $callback callback;
     }
     proxy_cache_key $scheme$proxy_host$uri$arg_widget$callback;
     proxy_pass_header "X-Accel-Expires";

В скрипте указываю:
header("X-Accel-Expires: 1");

Однако при монотонном F5 страницы скрипта теперь счетчик тикает не каждую
секунду, как и должен был бы, а раз в 2. Я понимаю, что кеш не совпадает с
моментом перехода между секундами и привносит погрешность в рамках секунды,
однако, почему кешированная страница живет дольше указанной 1 секунды?
Хотелось бы это исправить.

Спасибо.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20141004/7c70aeff/attachment.html>


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