Я бы сделал следующее:
1. Взял нашел в кеше страницу, скопировал URL
2. Удалил кеш
3. Использовал в консоли
curl -I URL
и проверял бы, бы в логах. Если информации мало, меняем параметр записей в лог.
Мои предположения, что сейчас пришли на ум:
1. Часть страниц отдается с pragma no-cache и другими заголовками, с которыми ответы не кешируются. Мне нравиться старая статья на анг (http://www.mnot.net/cache_docs/)
2. Возможно вы меняли пользователя, от которого работает nginx, но не поменяли права на остальные каталоги nginx, смотрим nginx -V
у меня это --http-proxy-temp-path=/var/spool/nginx/tmp/proxy
Оба варианта отлично отслеживаются по логам.
1-й например добавлением параметра в лог $upstream_cache_status, вы сразу поймете откуда был дан ответ.
2-й будет в логах ошибок.
Надеюсь перечень этих вариантов поможет вам разобраться.