В настоящее время я разрабатываю сайт, где функциональность необходимо разбить на отдельные поддомены, dashboard.example.com
, admin.example.com
и facebook.example.com
. Я бы хотел, чтобы все было подано через один проект Django, потому что все будет использовать одни и те же основные модели. Я использую Nginx в качестве переднего прокси-сервера, который обрабатывает статические файлы и передает все другие запросы Apache.Разделение проекта Django по субдоменам
Решение, которое я думал только о том, чтобы отобразить каждый из этих подразделов в соответствующее приложение через Nginx:
server {
listen 80;
server_name dashboard.example.com;
...
location/{
proxy_pass http://127.0.0.1/dashboard/;
...
}
}
server {
listen 80;
server_name admin.example.com;
...
location/{
proxy_pass http://127.0.0.1/admin/;
...
}
}
... делать это для каждого поддомена, эффективно отображение поддомены в соответствующих URL приложения пространств имен. Проблема, с которой я столкнулся, заключалась в том, что Django не знал о сопоставлении, поэтому, когда он меняет URL-адрес, он будет добавлять /dashboard/
и т. Д., Создавая URL-адреса, такие как dashboard.example.com/dashboard/dashboard/
. Я полагаю, что могу написать пользовательскую функцию reverse
, чтобы вырезать ненужный подкаталог, но это похоже на полосу.
Есть ли лучший способ выполнить то, что мне нужно, или же я должен реструктурировать проект?
Благодарим за помощь.