Ich habe die Anweisungen hier befolgt , um Django mit dem integrierten Webserver auszuführen, und konnte es erfolgreich mit ausführen python manage.py runserver
. Wenn ich lokal vom Webserver auf 127.0.0.1:port zugreife, wird auf der Django-Seite angezeigt, dass es funktioniert hat.
Mir ist klar, dass der Django-Webserver kein Produktionsserver ist, aber für Testzwecke ist es für mich wichtig, von außen darauf zugreifen zu können - dh nicht über einen Webbrowser auf dem Server, sondern von einem anderen Computer aus.
Ich habe es versucht:
http://mywebserver:port_django_runs_on
aber es hat nicht funktioniert. Ich habe auch versucht, stattdessen die IP (basierend auf ifconfig) zu verwenden, um auf Folgendes zuzugreifen:
http://myipaddress:port_django_runs_on
was auch nicht funktioniert hat.
Der Webserver läuft, daher muss er von außen zugänglich sein. Ich bin mir nur nicht sicher, wie. Ich verwende Linux mit Apache, obwohl ich Django nicht mit Apache konfiguriert habe.
Irgendwelche Ideen, wie das geht?
Antworten:
Sie müssen den Entwicklungsserver so ausführen, dass er die Schnittstelle zu Ihrem Netzwerk überwacht.
Z.B
Lauscht auf jeder Schnittstelle an Port 8000.
Es spielt keine Rolle, ob Sie mit der IP oder dem Hostnamen auf den Webserver zugreifen. Ich denke du bist immer noch in deinem eigenen LAN.
Wenn Sie wirklich von außen auf den Server zugreifen möchten, müssen Sie Ihren Router auch so konfigurieren, dass er den Port z
8000
. B. an Ihren Server weiterleitet.Überprüfen Sie Ihre Firewall auf Ihrem Server, ob eingehende Verbindungen zum verwendeten Port zulässig sind!
Angenommen, Sie können von außen erfolgreich auf Ihren Apache-Server zugreifen, können Sie auch Folgendes versuchen:
80
frei ist.sudo python manage.py runserver 0.0.0.0:80
quelle
sudo python manage.py runserver 80
.ALLOWED_HOSTS = ['*']
die für mich gearbeitet haben, von meinem Android-Handy aus auf die Django-App auf einem Mac zuzugreifenIch musste diese Zeile zu settings.py hinzufügen, damit sie funktioniert (andernfalls wurde beim Zugriff von einem anderen Computer aus ein Fehler angezeigt).
dann lief der Server mit:
Stellen Sie außerdem sicher, dass die Firewall Verbindungen zu diesem Port zulässt
quelle
Wählen Sie eine oder mehrere aus:
Sie können also überprüfen, ob Ihre Anwendung erfolgreich überwacht wird, indem Sie
lsof -i
als Root auf dem Computer ausgeführt werden, und nach einempython
Eintrag mit dem entsprechenden von Ihnen angegebenen Port suchen .Benutzer ohne Rootberechtigung können im Allgemeinen keine Bindung an Ports <1024 herstellen.
Sie müssen prüfen
iptables -nvL
, ob es eine Regel gibt, die den Zugriff auf den ip: port verhindert, an den Sie Ihre Anwendung binden möchten.Wenn es eine vorgelagerte Firewall gibt und Sie nicht viel darüber wissen, müssen Sie mit Ihren Netzwerkadministratoren sprechen.
quelle
you haven't configured it successfully
?django runserver
tatsächlich zuhört, wo Sie es beabsichtigen, zlsof
. B. mit .lsof
Ich sehe einen Python-Eintrag für meinen Port. Aber mein Link, dh myip: 8000, antwortet nicht. Ich weiß, dass es spät ist, aber alle Vorschläge werden helfen.mach das einfach:
Mit dem obigen Befehl binden Sie es tatsächlich an die externe IP-Adresse. Wenn Sie jetzt mit der Portnummer auf Ihre IP-Adresse zugreifen, können Sie problemlos im Browser darauf zugreifen.
Geben Sie einfach Folgendes in die Adressleiste des Browsers ein:
z.B:
Möglicherweise müssen Sie die settings.py bearbeiten. Fügen Sie in der settings.py in der letzten Zeile Folgendes hinzu:
hoffe das wird helfen ...
quelle
Für AWS-Benutzer.
Ich musste die folgenden Schritte ausführen, um dorthin zu gelangen.
1) Stellen Sie sicher, dass Pip und Django auf Sudo-Ebene installiert sind
2) Stellen Sie sicher, dass die an die Sicherheitsgruppe gebundenen Regeln http an Port 80 für 0.0.0.0/0 enthalten
3) Fügen Sie ALLOWED_HOSTS öffentliche IP und DNS hinzu
4) Starten Sie den Entwicklungsserver mit sudo auf Port 80
Die Site ist jetzt unter einer der folgenden Optionen verfügbar (keine Notwendigkeit für: 80, da dies die Standardeinstellung für http ist):
quelle
Ich werde dies hier hinzufügen:
sudo python manage.py runserver 80
Gehen Sie zu Ihrem Telefon oder Computer und geben Sie die interne IP Ihres Computers (z. B.
192.168.0.12
) in den Browser ein.Zu diesem Zeitpunkt sollten Sie mit dem Django-Server verbunden sein.
Dies sollte auch ohne sudo funktionieren:
quelle
Wenn Sie Docker verwenden, müssen Sie sicherstellen, dass auch Ports verfügbar sind
quelle
AKTUALISIERT 2020 VERSUCHEN SIE DIESEN WEG
quelle