web-dev-qa-db-fra.com

Comment rendre le devserver de Django public? Est-ce généralement possible?

J'essaie actuellement le framework Django et je partagerais/présenterais/montrerais des choses que j'ai faites à mes collègues/amis. Je travaille dans Ubuntu sous Win7 via VMware. Donc, mon souhait/désir est d’envoyer mon IP-pub actuel avec un port (par exemple http://123.123.123.123:8181/Django-app/ ) à mes amis pour qu’ils puissent le tester. 

le problème est - j'utilise le serveur de développement de Django (python /path-to-Django-app/manage.py Rueserver $ IP: $ PORT).

Comment rendre le devserver public?

MODIFIER:

Oh, il y a quelque chose que j'ai oublié de mentionner. Comme je suis triste, j'utilise VMware avec Ubuntu. J'ai un script shell qui me renvoie mon adresse IP actuelle 192.168.xx.xx et l'enregistre dans une variable d'environnement ($ CUR_IP) Ainsi, chaque fois que je veux utiliser le devserver de Django, je l'exécute simplement. 

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

De cette manière, je deviens une adresse http (par exemple . http://192.168.40.145:8080/app-name/ ) que JE PEUX UTILISER EN DEHORS de ma machine virtuelle. Je pourrais le tester sur ma machine hôte (win7). C'est en fait la raison pour laquelle j'ai posé la question. Je pensais qu'il y avait un moyen d'utiliser l'ext-IP et de rendre le serveur d'exécution utilisable à l'extérieur aussi

30
V-Light

192.168.*.* est une adresse privée du réseau local. Une fois que vous avez configuré le pare-feu VMWare (ou un autre gestionnaire VM) approprié pour le rendre accessible depuis le réseau local, il ne sera toujours pas accessible de l'extérieur c'est-à-dire d'Internet en général (une bonne chose aussi, car de tels serveurs de développement sont non conçus pour la sécurité et l'évolutivité).

Pour que le port d’une machine disposant d’une adresse IP privée sur un réseau local soit visible sur Internet, vous avez besoin d’un routeur doté de la fonctionnalité "serveurs virtuels" (proposé par de nombreux routeurs, même les plus économiques), mais il est impossible d’être précis. puisque chaque marque a sa propre manière idiosyncratique). Je recommanderais également dyndns ou un autre service similaire d'associer un nom DNS stable à votre adresse IP publique toujours variable (sauf si vous recherchez une adresse IP statique de votre fournisseur de connectivité, bien sûr, mais cette dernière option devient plus coûteux tout le temps).

superuser.com ou serverfault.com peuvent fournir de meilleures réponses et des détails plus précis (une fois que vous avez donné tous les détails de votre configuration dans une question), car la question n'a rien à voir avec le développement de logiciels et tout ce qui concerne l'administration et la configuration du serveur.

3
Alex Martelli

En supposant que Ruby soit installé, il vous suffit d’obtenir localtunnel:

gem install localtunnel

puis démarrez votre serveur de développement python avec:

python manage.py runserver 0.0.0.0:8000

dans un autre shell, démarrez localtunnel:

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

Cela produira une URL pour accéder à votre serveur local.

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

C'est tout.

10
trez

Déjà répondu, mais ajout de npm alternatif du même tunnel local

Sudo npm install -g localtunnel

lt --port 8000 --subdomain yash
2
Yash

Je devais ajouter cette ligne à settings.py pour que cela fonctionne (sinon, une erreur s’affiche lorsqu’on y accède depuis un autre ordinateur).

ALLOWED_HOSTS = ['*']

puis couru le serveur avec:

python manage.py runserver 0.0.0.0:9595
1

Si vous utilisez Virtualbox, vous devez modifier le paramètre réseau dans VB de "NAT" en "Carte pontée". Puis redémarrez Linux. Maintenant, si vous exécutez Sudo ifconfig, vous pourrez voir votre adresse IP comme 192.168.*.*. La dernière étape est le serveur d'exécution

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

À votre santé!

1
RezA

Vous devez configurer un réseau ponté dans VMWare et également accorder un accès au port cible du pare-feu Ubuntu.

0
J. Random Geek