Недавно мы перенесли старый веб-сайт Rails 2.3 с сервера CentOS 6 на сервер CentOS 7. Начиная с этого перехода, несколько страниц получают кеширование, чего не должно быть.Рельсы 2.3 страницы кэшируются, когда они не должны на Passenger 5
Вот подробности об изменениях веб-сервере:
- Старая система была Passenger 4, новый является пассажирским 5.0.30.
- Старая система была Apache, новый является Nginx 1.10.1
- приложение не изменилось, кроме добавления config.ru для Пассажира 5
- Мы бежим Rails 2.3.17 на Ruby, РЗЭ
- Мы запускаем Memcached для кэширования фрагментов, но не с этими страницами.
Вещи, которые мы попробовали:
- Если мы изменим вид, изменения не проявляются вплоть до перезапуска. Шаблон просмотра кэшируется.
- Мы отключили турбобашины пассажира 5. Это не помогло.
- Мы удалили все ключи из Memcached. Это не помогло.
- Найти и удалить на диске Rails caches - мы не нашли (и не должны).
Подробнее:
- Мы размещаем несколько других Rails 2.3 веб-сайтов и десятки Rails 3.x/4.x сайтов и не имеют этой проблемы.
- Если вы перезапустите Nginx или
touch tmp/restart.txt
, появятся изменения. - Файлы журнала для Nginx показывают a 200
- Файл журнала Rails производства показывает времена для создания db и представления.
Похоже, что он генерирует выход, но затем он извлекает из своего рода кеш между Rails, Passenger и Nginx.
Что может быть причиной этого?
Вы изменяете виды непосредственно в процессе производства, а не через «полный» процесс развертывания (шаг для отката сервера приложений)? И это работает для ваших других приложений? –
Какие изменения сдерживаются? У меня были аналогичные проблемы в отношениях Rails 2.x, где has_many или аналогичные отношения кэша в состоянии, которое они были, когда веб-сервер был запущен (как если бы сам db кэшировался, хотя это не так). –
@SergioTulentsev Мы изменили представления без полного развертывания или отскакивания от сервера. Я подозреваю, что они кэшируются путем кэширования шаблона просмотра. –