Я пытаюсь запустить большое количество сайтов, которые содержат около 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/
Любые идеи или помощь будут оценены с наибольшей оценкой, я не знаю, какой маршрут следует принимать с этим.
Джеймс