Запустите Django на нескольких портах - PullRequest
3 голосов
/ 07 октября 2010

Может кто-нибудь сказать мне, как я могу запустить Django на двух портах одновременно?Конфигурация Django по умолчанию прослушивает только порт 8000. Я хотел бы также запустить другой экземпляр на порту xxxx.Я хотел бы перенаправить все запросы ко второму порту на конкретное приложение в моем приложении Django.

Мне нужно сделать это с установкой Django по умолчанию, а не с помощью веб-сервера, такого как nginx, Apache и т. Д.

Спасибо


Допустим, я дваприложения в моем приложении Django.Теперь я имею в виду не два отдельных приложения Django, а отдельные папки внутри каталога 'app'.Давайте назовем это app1 и app2

Я хочу, чтобы все запросы на порт 8000 переходили на app1, а все запросы на порт XXXX - на app2

HTH.

Ответы [ 3 ]

10 голосов
/ 07 октября 2010

Просто запустите два экземпляра ./manage.py runserver. Вы можете установить порт, просто указав его напрямую: ./manage.py runserver 8002 для прослушивания на порту 8002.

Редактировать Я не очень понимаю, почему вы хотите это сделать. Если вы хотите, чтобы два сервера обслуживали разные части вашего сайта, у вас фактически есть два сайта, для которых потребуются два отдельных файла settings.py и urls.py. Затем вы запускаете один экземпляр runserver с каждым, соответственно передавая флаг настроек: ./manage.py runserver 8002 --settings=app1.settings

5 голосов
/ 30 июля 2014

Еще одна вещь, которую следует учитывать - в сеансовом файле django для каждого сайта будут использоваться одни и те же файлы cookie сеанса, и, поскольку файлы cookie не зависят от порта , у вас будут проблемы с выходом из системы при каждом переключении между окна, если вы не используете несколько сеансов браузера / частного просмотра во время разработки.

Хотя это то, что вам нужно сделать, когда вы входите в систему с двумя разными пользователями на одном сайте, вход на 2 разных сайтах, на обоих из которых запущен django на разных портах локального хоста, не должен работать следующим образом.

Одним из простых решений является написание простого промежуточного программного обеспечения, чтобы исправить это, добавив номер порта к имени переменной, используемой для хранения вашего идентификатора сеанса. Вот тот, который я использую .

2 голосов
/ 07 октября 2010

Встроенный веб-сервер предназначен только для разработки, поэтому вы действительно должны использовать Apache или аналогичный в ситуации, когда вам нужно работать на нескольких портах.

С другой стороны, вы сможете запустить несколько серверов, просто запустив несколько экземпляров runserver. Пока вы используете отдельный сервер базы данных, я не думаю, что у него возникнут дополнительные проблемы.

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