Как разместить мультитенантное программное обеспечение на Django? - PullRequest
0 голосов
/ 26 сентября 2011

Представьте, что у вас есть основной проект django, в котором размещается программное обеспечение для разных арендаторов ->

Программное обеспечение будет размещено на -> www.tenantdomain.com

Основной проект размещен на -> www.ourdomain.com

Предположим, программное обеспечение доступно по этому адресу -> www.ourdomain.com / tenant_id / home /
Это должно перевести на -> www.tenantdomain.com / home /

How can one do that ?

Еще одна вещь, www.tenantdomain.com и www.ourdomain.com, наши оба размещены на одном сервере , и оба имеют доступ к одной базе данных .

1 Ответ

1 голос
/ 26 сентября 2011

Для этого в Django есть два варианта.

Самый быстрый способ - разместить приложения различных арендаторов в одном проекте с структурой сайтов Django .Это полезно, если приложения обмениваются данными.Если это не так, вы должны уточнить, что вы имеете в виду, когда ваши приложения обращаются к одной базе данных.«Одна база данных» в Django означает один проект.Выполнение этого в основном означает, что URL-прокси переходит от tenant.com/{whatever} до yourapp.com/tenant/5/{whatever}.

Более сложным способом будет полное разделение приложений вашего арендатора на отдельные экземпляры проекта Django.Это означает ручное (или программное) развертывание каждого экземпляра.Этот параметр требует выполнения большего количества задач sys-admin в фоновом режиме, но обеспечивает максимальную гибкость.Что еще более важно, каждое приложение полностью отделено от других, так что это лучше с точки зрения безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...