думаю это должно работать:
- когда нет кеша заппрос передается в апстрим
- когда кеш устарел, но с момента создания прошло менее 24 часов клиент получает ответ из кеша и в фоне создается новый кеш
- если к кешу не было обращений в течении 24 часов он удаляется
как происходит на практике:
на тестовом сервере все так и работает...
но в проде, где есть не очень большое количество пользователей, кеш давольно быстро (минуты) пропадает:
ключ кеша содержит некоторые переменные из кук, бывает так что уже через 10 мин нет кеша для какого-либо из вариантов, такое поведение удается воспроизвести на теством севвере, если выставить max_size=10m. Но проверка свободного места говорит, что на диске еще 50G, а текущие объемы кешей даже не рядом:
nginx# du -sh ./*
529M ./cache
669M ./back-cache
321M ./front-cache
уже помоему все что можно перечитал. есть идеи? Например, в доке написано, что если не указан max_size, то nginx заберет под кеш все доступное место... А все это все что есть на диске или, к примеру, есть какая-то настройка под это на глобальном уровне или при сборке?
а число объектов какое? зоны 300m точно хватает? (вижу что объем данных небольшой, но мало ли файлы оооочень небольшие)
du --inode -s ./* 18050 ./cache 15284 ./back-cache 1555 ./front-cache
Обсуждают сегодня