Не работает кэширование в nginx

Использую nginx в качестве прокси-сервера для бэкенда, который в свою очередь сильно зависит от внешнего API, который зачастую отвечает за 100-200 миллисекунд, но иногда там случаются сбои и API может отвечать по 1-2 секунды. Меня это не устраивало и я решил настроить кэширование в nginx таким образом, чтобы он всегда выдавал страницу из кэша, но в фоновом режиме ходил к бэкенду и обновлял содержимое кэша. Но почему-то это не работает.

Слева время ответа nginx, справа - время ответа бэкенда. Следуя логике nginx, время Request Time должно было упасть и стабилизироваться, в то время как Upstream Response Time должно было остаться неизменным - nginx отдаёт просроченную страницу из кэша моментально, а в фоне идёт обновлять кэш для последующих пользователей. Но ситуация не поменялась ни капли и графики по-прежнему идентичны. 13 февраля видно небольшое увеличение времени ответа - это я включил фоновое кэширование и удалил папку /var/cache/nginx.

введите сюда описание изображения

Моя настройка кэша:

proxy_cache all;
proxy_cache_valid 200 301 302 1h;
proxy_cache_valid 404 500 502 504 30s;
proxy_cache_lock on;
proxy_cache_background_update on;
proxy_cache_use_stale error timeout updating;

Я что-то настроил не так или я просто неправильно интерпретирую графики?


Ответы (0 шт):