С запасом Django у вас должен быть уникальный settings.py
для каждого сайта ... потому что SITE_ID определен в settings.py
и является ключом, для которого сайт обрабатывает этот запрос.
Другими словами, SITE_ID является глобальным для вашего экземпляра, и поэтому вам нужен экземпляр для каждого сайта.
У вас может быть общее, urls.py
если вы хотите, потому что нет ничего, что помешало бы вам использовать то же самое settings.py
во всех settings.py
файлах вашего сайта ... или вы можете иметь разные для каждого сайта. В этом случае вы хотели бы включить суб URL-адреса, чтобы не повторять себя для каких-либо общих URL-адресов.
Есть как минимум два метода, которые вы можете попробовать выполнить из одного экземпляра:
-
Используйте apache + mod_wsgi и используйте директивы WSGIApplicationGroup и / или WSGIProcessGroup . Я никогда не нуждался в них раньше, поэтому не могу быть уверенным, что они будут работать так, как вы хотите, но независимо от того, можете ли вы использовать mod_wsgi в режиме демона, чтобы значительно улучшить объем памяти.
-
Вы можете играть с промежуточным программным обеспечением Django, чтобы отклонять / разрешать URL-адреса на основе имени хоста запроса (см. HttpRequest.get_host () в документах Django). Если уж на то пошло, хотя это было бы небольшое поражение производительности, вы можете поместить декоратор на все свои взгляды, которые проверяют входящий хост.