我正在尝试运行大量共享大约 90% 代码的网站。它们只是为了查询 API 并返回结果而设计的。它们将有一个共同的用户群/数据库,但配置会略有不同,并且会有不同的 CSS(甚至可能是不同的模板)。
我最初的想法是将它们作为具有公共库的单独应用程序运行,但我已经阅读了有关站点框架的信息,该框架允许它们从 django 的单个实例运行,这可能有助于减少内存使用。
https://docs.djangoproject.com/en/dev/ref/contrib/sites/
我的问题是,站点框架是否是解决此类问题的正确方法,并且与运行单独的应用程序相比,它是否具有真正的好处。起初我认为是,但我不这么认为。我听说过以下内容:
您的 SITE_ID 在 settings.py 中设置,因此为了拥有多个站点,您需要多个 settings.py 配置,这意味着多个不同的进程/实例。您当然可以在它们之间共享代码库,但是每个站点都需要一个专门的工作人员/WSGIDaemon 来为站点提供服务。
如果每个站点都需要运行一个 UWSGI 实例,这将有效地消除在一个引擎盖下运行多个站点的任何好处。
系统的替代想法:
- 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/
我不知道该采取什么路线。