У меня есть несколько сайтов под одним приложением Django, на которых я хотел бы реализовать кэширование всего сайта. Однако это оказалось настоящей проблемой.
происходит то, что settings.CACHE_MIDDLEWARE_KEY_PREFIX
устанавливается один раз при запуске, и я не могу изменить его в зависимости от текущего сайта. В результате, если страница url http://website1.com/abc/
кэшируется, то http://website2.com/abc/
отображает кешированную версию ] http://website1.com/abc/
. Оба этих веб-сайта работают на одном экземпляре Django, поскольку это то, что, похоже, позволяет нам делать сайты Django.
Это неправильный подход? Поскольку я не могу динамически установить CACHE_MIDDLEWARE_KEY_PREFIX
во время выполнения, я не могу кэшировать несколько сайтов с помощью Django » s Кэширование на уровне всего сайта. Я также не могу сделать это для кеширования шаблонов и представлений.
У меня сложилось впечатление, что на самом деле это нужно настроить так: каждому сайту нужен собственный экземпляр Django, который практически идентичен, за исключением файла настроек, который в моем случае будет отличаться только значением CACHE_MIDDLEWARE_KEY_PREFIX
. Все эти экземпляры Django читают и записывают в одну и ту же базу данных. Это беспокоит меня, так как это может создать ряд новых проблем.
Я иду правильным путем или ошибаюсь в том, как должна работать многосайтовая архитектура? Я проверил документацию Django, и нет реального упоминания о том, как обрабатывать кеширование (это не кеширование низкого уровня) для приложений Django, которые обслуживают несколько сайтов.