Как сделать общедоступным Django? Это вообще возможно? - PullRequest
32 голосов
/ 25 июля 2010

В настоящее время я опробую 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?

EDIT:

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

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

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

Ответы [ 7 ]

86 голосов
/ 25 июля 2010
python manage.py runserver 0.0.0.0:8181

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

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

Из документов:

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

11 голосов
/ 06 сентября 2012

Предполагая, что у вас установлен ruby, вам просто нужно получить localtunnel:

gem install localtunnel

, затем запустить сервер разработки Python с:

python manage.py runserver 0.0.0.0:8000

в другой оболочке, запустить localtunnel:

localtunnel -k ~/.ssh/id_rsa.pub 8000 

Будет выведен URL для доступа к вашему локальному серверу.

Port 8000 is now publicly accessible from http://xxxx.localtunnel.com

Вот и все.

4 голосов
/ 25 июля 2010

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

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

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

3 голосов
/ 25 мая 2016

Уже ответил, но добавив npm альтернативу того же локального туннеля

sudo npm install -g localtunnel

lt --port 8000 --subdomain yash
1 голос
/ 29 июня 2017

Мне пришлось добавить эту строку в settings.py, чтобы она заработала (в противном случае при доступе с другого компьютера появляется ошибка)

ALLOWED_HOSTS = ['*']

затем запустил сервер с:

python manage.py runserver 0.0.0.0:9595
1 голос
/ 03 января 2014

Если вы используете Virtualbox, вам нужно изменить настройки сети в VB с «NAT» на «Bridged Adapter».Затем перезапустите Linux.Теперь, если вы запустите sudo ifconfig, вы сможете увидеть свой IP-адрес как 192.168.*.*.Последний шаг - runserver

python manage.py runserver 192.168.*.*:8000

Приветствия!

0 голосов
/ 25 июля 2010

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

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