Я использую nginx 1.8.1 с микрокешем для кеширования некоторых php-запросов в /dev/shm
и все работает нормально, однако, когда я перезагружаю сервер, кэшированные файлы исчезают (очевидно), но nginx по-прежнему ссылается на те, которые находятся в общей памяти (mustn не будет ли перезагрузка?).
Итак, что происходит, если я запрашиваю одну страницу, которая была кэширована ранее, она показывает ошибку 500 и дает мне пустой ответ.
То же самое происходит, если я позволю nginx кешировать некоторые страницы, а затем вручную удалить физические кешированные файлы.
Я должен перезагрузить nginx, чтобы он снова заработал.
Я думал, что если nginx не найдет файл кэша, он создаст новый. Это должно произойти? Должен ли я всегда перезагружать nginx после удаления файлов кэша вручную?
Есть ли способ для nginx автоматически воссоздать файл, если он не находит кэшированный файл?
Соответствующий код:
fastcgi_cache_path /dev/shm levels=1:2 use_temp_path=off keys_zone=mcache:16m inactive=600s max_size=512m;
А также:
fastcgi_keep_conn on;
fastcgi_connect_timeout 20s;
fastcgi_send_timeout 30s;
fastcgi_read_timeout 30s;
fastcgi_cache_lock on;
fastcgi_cache_use_stale timeout updating;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache mcache;
fastcgi_cache_valid 200 301 302 5s;
fastcgi_cache_valid 403 404 5m;
add_header X-Proxy-Cache $upstream_cache_status;
Я имею:
sendfile off;
Но все же мне нужно перезагрузить (перезагрузка не исправляет) nginx для регенерации кеша. Я тестирую это на vultr 2Gb VM.