1つのDjangoアプリケーションの下にサイトワイドキャッシングを実装したいサイトがいくつかあります。しかし、それは本当の面倒であることが証明されています。Django - 複数のサイトのサイトキャッシング
起動時にsettings.CACHE_MIDDLEWARE_KEY_PREFIX
が1回設定され、現在のサイトの内容に応じて変更することはできません。その結果、URL http://website1.com/abc/
のページがキャッシュされた場合、http://website2.com/abc/
はキャッシュされたバージョンhttp://website1.com/abc/
をレンダリングします。これらのWebサイトは、同じDjangoインスタンス上で実行されていますが、これはDjangoサイトが私たちにできるように見えるものです。
これは不正な方法ですか?実行時に動的にCACHE_MIDDLEWARE_KEY_PREFIX
を設定することはできないため、Djangoのサイト全体のキャッシュを使用して複数のサイトをキャッシュすることはできません。私はテンプレートとビューキャッシングのためにこれを行うこともできません。
実際にセットアップする必要があるという印象を受けるのは、それぞれのサイトが設定ファイルを除いてほとんど同一のDjangoインスタンスを必要とするということです。私の場合はCACHE_MIDDLEWARE_KEY_PREFIX
という値だけが異なります。これらのDjangoインスタンスはすべて同じデータベースを読み書きします。これは数多くの新しい問題を生み出す可能性があるため、私には心配です。
私は正しい道を歩いているのですか、あるいは私はマルチサイトアーキテクチャがどのように動作する必要があるのか間違っていますか?私はDjangoのドキュメントをチェックしましたが、複数のサイトに対応するDjangoアプリケーションのキャッシング(低レベルのキャッシングではない)をどのように処理するのかについては言及していません。
あなたはその解決策を見つけましたか? –