Postępowałem zgodnie z instrukcjami tutaj, aby uruchomić Django przy użyciu wbudowanego serwera internetowego i udało mi się go pomyślnie uruchomić przy użyciu python manage.py runserver
. Jeśli uzyskam dostęp do 127.0.0.1:port lokalnie z serwera WWW, otrzymam stronę Django wskazującą, że działa.
Zdaję sobie sprawę, że serwer WWW Django nie jest serwerem produkcyjnym, ale do celów testowych ważne jest dla mnie, aby mieć do niego dostęp ze świata zewnętrznego - tj. Nie z przeglądarki internetowej na serwerze, ale z innego komputera.
Próbowałem:
http://mywebserver:port_django_runs_on
ale to nie zadziałało. Próbowałem również użyć adresu IP (w oparciu o ifconfig), aby uzyskać dostęp:
http://myipaddress:port_django_runs_on
który też nie działał.
Serwer WWW działa, więc musi być dostępny z zewnątrz, po prostu nie wiem jak. Używam Linuksa z Apache, chociaż nie skonfigurowałem Django z Apache.
Jakieś pomysły, jak to zrobić?
Odpowiedzi:
Musisz uruchomić serwer deweloperski tak, aby nasłuchiwał na interfejsie Twojej sieci.
Na przykład
nasłuchuje na każdym interfejsie na porcie 8000.
Nie ma znaczenia, czy uzyskujesz dostęp do serwera WWW za pomocą adresu IP czy nazwy hosta. Myślę, że nadal jesteś we własnej sieci LAN.
Jeśli naprawdę chcesz uzyskać dostęp do serwera z zewnątrz, musisz również skonfigurować router, aby przekierowywał port, np.
8000
Do serwera.Sprawdź swoją zaporę na serwerze, czy połączenia przychodzące do używanego portu są dozwolone!
Zakładając, że możesz pomyślnie uzyskać dostęp do serwera Apache z zewnątrz, możesz również spróbować tego:
80
był wolny.sudo python manage.py runserver 0.0.0.0:80
źródło
sudo python manage.py runserver 80
.ALLOWED_HOSTS = ['*']
pracującym dla mnie dostępu do aplikacji Django na komputerze Mac z mojego telefonu z AndroidemMusiałem dodać tę linię do settings.py, aby działała (w przeciwnym razie pokazywał błąd podczas uzyskiwania dostępu z innego komputera)
następnie uruchomiłem serwer z:
Upewnij się również, że zapora zezwala na połączenia z tym portem
źródło
Wybierz co najmniej jeden z:
Możesz więc sprawdzić, czy aplikacja nasłuchuje pomyślnie, uruchamiając
lsof -i
jako root na komputerze i poszukajpython
wpisu z odpowiednim określonym portem.Użytkownicy inni niż root zazwyczaj nie mogą łączyć się z portami <1024.
Będziesz musiał
iptables -nvL
sprawdzić, czy istnieje reguła, która uniemożliwiłaby dostęp do adresu ip: port, z którym próbujesz powiązać swoją aplikację.Jeśli istnieje zapora nadrzędna i niewiele o niej wiesz, musisz porozmawiać z administratorami sieci.
źródło
you haven't configured it successfully
?django runserver
faktycznie nasłuchuje tam, gdzie zamierzasz, nplsof
. Używając .lsof
, widzę wpis w Pythonie dla mojego portu. Ale mój link, czyli myip: 8000 nie odpowiada. Wiem, że jest późno, ale wszelkie sugestie pomogą.po prostu zrób to:
za pomocą powyższego polecenia faktycznie wiążesz go z zewnętrznym adresem IP. więc teraz, gdy uzyskasz dostęp do swojego adresu IP za pomocą numeru portu, będziesz mógł uzyskać do niego dostęp w przeglądarce bez żadnego problemu.
wystarczy wpisać w pasku adresu przeglądarki:
na przykład:
być może będziesz musiał edytować settings.py, dodaj następujące elementy w settings.py w ostatniej linii:
mam nadzieję, że to pomoże ...
źródło
Dla użytkowników AWS.
Aby się tam dostać, musiałem wykonać następujące kroki.
1) Upewnij się, że pip i django są zainstalowane na poziomie sudo
2) Upewnij się, że reguły związane z grupą zabezpieczeń obejmują http na porcie 80 dla 0.0.0.0/0
3) Dodaj publiczny adres IP i DNS do ALLOWED_HOSTS
4) Uruchom serwer deweloperski z sudo na porcie 80
Witryna jest teraz dostępna pod jednym z poniższych (nie ma potrzeby: 80, ponieważ jest to ustawienie domyślne dla http):
źródło
Dodam to tutaj:
sudo python manage.py runserver 80
Przejdź do telefonu lub komputera i wprowadź wewnętrzny adres IP komputera (np.
192.168.0.12
) Do przeglądarki.W tym momencie powinieneś być połączony z serwerem Django.
Powinno to również działać bez sudo:
źródło
Jeśli używasz Dockera, musisz upewnić się, że porty również są widoczne
źródło
AKTUALIZACJA 2020 WYPRÓBUJ W TEN SPOSÓB
źródło