Django - Кэширование нескольких сайтов

У меня есть несколько сайтов под одним приложением 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, которые обслуживают несколько сайтов.

6
задан Kristian Glass 22 April 2012 в 01:28
поделиться