Как сделать devserver общественность Django? Действительно ли это обычно возможно?

Я в настоящее время испытываю платформу Django, и я совместно использовал бы/представил бы/показал бы некоторый материал, который я сделал своему коллеге/друзьям. Я работаю в Ubuntu под Win7 через VMware. Таким образом, мое желание/требование состоит в том, чтобы отправить мой текущий IP паба с портом (например, http://123.123.123.123:8181/django-app/) моим друзьям, таким образом, они могли протестировать его.

проблема - я использую сервер Dev django (Python/path-to-django-app/manage.py runserver $IP: $PORT).

Как я обнародовал devserver?

Править:

О, существует что-то, что я забыл упоминать. Как я печальный я использую VMware с Ubuntu. У меня есть сценарий оболочки, который возвращает меня мой текущий международный IP 192.168.xx.xx и сохраняет его в переменной среды ($CUR_IP) Так, каждый раз, когда я хочу выполнить devserver django, который я просто выполняю

python /path-to-django-site/manage.py runserver $CUR_IP:8080

В этом пути я становлюсь http-адресом (e.g.http://192.168.40.145:8080/app-name/) который я ИСПОЛЬЗОВАНИЕ CAN ВНЕ моей виртуальной машины. Я мог протестировать его на своем хосте (win7) машина. Это - на самом деле причина, почему я задал вопрос. Я думал, что существует способ использовать экс-подсказку и сделать runserver применимый снаружи также

32
задан Paul Floyd 25 January 2019 в 09:55
поделиться

3 ответа

192.168. *. * является Частный адрес локальной сети - после того, как вы выполнили правильные действия VMWare (или другого диспетчера виртуальных машин) и брандмауэра, чтобы сделать его доступным из локальной сети, он по-прежнему не будет доступен извне локальной сети, то есть из Интернета в целом. (Это тоже хорошо, потому что такие серверы разработки не предназначены для обеспечения безопасности и масштабируемости).

Чтобы сделать какой-либо порт машины с частным IP-адресом локальной сети видимым для Интернета в целом, вам понадобится маршрутизатор с возможностью «виртуальных серверов» (многие маршрутизаторы, даже дешевые, предлагают такую ​​возможность, но это невозможно. конкретно о его включении, поскольку у каждого бренда есть свой собственный способ). Я бы также порекомендовал dyndns или другой подобный сервис, чтобы связать стабильное DNS-имя с вашим постоянно меняющимся общедоступным IP-адресом (если, конечно, вы не тратитесь на статический IP-адрес от своего провайдера подключения, но последний вариант становится все дороже).

superuser.com или serverfault.com могут предоставить более точные ответы и подробности (если вы укажете все до единой детали своей конфигурации в вопросе), поскольку вопрос не имеет ничего общего с разработкой программного обеспечения и все, что связано с администрированием сервера и конфигурация.

4
ответ дан 27 November 2019 в 19:52
поделиться
python manage.py runserver 0.0.0.0:8181

Это запустит сервер разработки , который должен прослушивать все IP-адреса на порту 8181.

Обратите внимание, что с 17 июня 2011 г. Django Сервер разработки по умолчанию имеет многопоточность (номер билета 1609) .

Из документации:

Обратите внимание, что IP-адрес по умолчанию, 127.0.0.1, недоступен с других компьютеров в вашей сети. К сделайте ваш сервер разработки видимым к другим машинам в сети используйте собственный IP-адрес (например, 192.168.2.1) или 0.0.0.0.

86
ответ дан 27 November 2019 в 19:52
поделиться

Вам необходимо настроить мостовую сеть в VMWare, а также предоставить доступ к целевому порту в брандмауэре Ubuntu.

0
ответ дан 27 November 2019 в 19:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: