サイト全体のキャッシュを実装したい 1 つの Django アプリケーションの下に多数のサイトがあります。しかし、それは本当に面倒なことであることが証明されています。
何が起こるかというとsettings.CACHE_MIDDLEWARE_KEY_PREFIX
、起動時に一度設定され、現在のサイトが何であるかに応じて先に進んで変更することはできません. その結果、 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 アプリケーションのキャッシング (低レベルのキャッシングではない) を処理する方法については実際には言及されていません。