コードの約 90% を共有する多数のサイトを実行しようとしています。API をクエリして結果を返すように設計されているだけです。それらは共通のユーザーベース/データベースを持ちますが、構成はわずかに異なり、CSS も異なります (おそらくテンプレートも異なります)。
私の最初のアイデアは、共通のライブラリを使用して個別のアプリケーションとして実行することでしたが、メモリ使用量を削減するのに役立つ可能性のある django の単一のインスタンスから実行できるサイト フレームワークについて読みました。
https://docs.djangoproject.com/en/dev/ref/contrib/sites/
私の質問は、サイト フレームワークはこのような問題に対する適切なアプローチであり、個別のアプリケーションを実行するよりも実際にメリットがあるかということです。最初はそうだと思いましたが、そうではないと思います。私は次のことを聞いたことがあります。
SITE_ID は settings.py で設定されるため、複数のサイトを持つには、複数の settings.py 構成が必要です。つまり、複数の異なるプロセス/インスタンスを意味します。もちろん、それらの間でコード ベースを共有することもできますが、各サイトには、サイトにサービスを提供するための専用のワーカー/WSGIDaemon が必要です。
これにより、各サイトで UWSGI インスタンスを実行する必要がある場合、1 つのフードの下で複数のサイトを実行する利点が実質的になくなります。
システムの代替案:
- https://github.com/iivvoo/django_layers
- https://github.com/shestera/django-multisite
- http://www.huyng.com/posts/franchising-running-multiple-sites-from-one-django-codebase/
これではどのルートをたどればいいのかわからない。