외부로부터 로컬 Django 웹서버에 액세스하는 방법
여기에 나와 있는 지시에 따라 내장 웹서버를 이용해 장고를 실행했고, 이를 이용해 성공적으로 실행할 수 있었다.python manage.py runserver
표시된다 웹서버에서 로컬로 127.0.0.1:포트에 접속하면, 작동했음을 나타내는 장고 페이지가 표시된다.
나는 짱오 웹서버가 생산용 서버가 아니라는 것을 알지만, 외부세계에서 접속할 수 있는 테스트 목적, 즉 서버의 웹브라우저에서가 아니라 다른 컴퓨터에서 접속할 수 있는 것이 나에게 중요하다.
나는 노력했다:
http://mywebserver:port_django_runs_on
하지만 소용이 없었다.ifconfig에 기반하여 IP를 대신 사용하여 다음 항목에 액세스해 보았다.
http://myipaddress:port_django_runs_on
그것도 먹히지 않았다.
웹 서버가 실행되고 있어서 외부에서 접속할 수 있을 텐데, 어떻게 접속할 수 있을지 모르겠어.나는 Django를 Apache로 구성하지는 않았지만 Apache로 Linux를 운영하고 있다.
어떻게 해야 할지 생각나는 거 있어?
당신은 개발 서버가 당신의 네트워크 인터페이스에서 수신하도록 실행해야 한다.
예시
python manage.py runserver 0.0.0.0:8000
포트 8000의 모든 인터페이스에서 수신.
IP로 웹서버에 접속하든 호스트 이름으로 접속하든 상관없다.너는 아직 네 자신의 LAN에 있는 것 같아.
외부에서 서버에 액세스하려면 라우터를 포워드 포트에도 구성해야 한다. 8000
서버에 연결하십시오.
사용 중인 포트로 들어오는 연결이 허용되는지 서버의 방화벽을 확인하십시오!
외부에서 Apache 서버에 성공적으로 액세스할 수 있다고 가정할 때 다음을 시도해 보십시오.
- 해당 포트를 통해 Apache 서버를 중지하십시오.
80
무료다. - 다음을 통해 개발 서버 시작
sudo python manage.py runserver 0.0.0.0:80
settings.py에 이 회선을 추가해야 제대로 작동할 수 있다(다른 컴퓨터에서 액세스할 때 오류가 표시됨).
ALLOWED_HOSTS = ['*']
그런 다음 다음을 사용하여 서버를 실행하십시오.
python manage.py runserver 0.0.0.0:9595
또한 방화벽이 해당 포트에 대한 연결을 허용하는지 확인
다음 중에서 하나 이상 선택하십시오.
- 응용 프로그램이 원하는 IP를 수신하지 못하는 경우:포트
- 성공적으로 구성하지 못했기 때문에
- 사용자에게 에 대한 권한이 없기 때문에
- 은 IP에서 성공적으로 , 로 접속할수 PORT, 그러나 클라이언트가 접속할 수 없는 이유는
- 서버 로컬 iptables는 그것을 방지한다.
- 방화벽은 그것을 막는다.
따라서 프로그램을 실행하면 프로그램이 성공적으로 수신되고 있는지 확인할 수 있다.lsof -i
기계에 뿌리를 내리고python
지정한 해당 포트를 사용하여 시작하십시오.
루트 사용자가 아닌 사용자는 일반적으로 포트 < 1024에 바인딩할 수 없다.
넌 좀 봐야 할거야iptables -nvL
응용프로그램을 바인딩하려는 ip:port에 액세스할 수 없는 규칙이 있는지 확인하십시오.
업스트림 방화벽이 있고 잘 모르는 경우 네트워크 관리자에게 문의하십시오.
이 작업만 수행하십시오.
python manage.py runserver 0:8000
위의 명령으로 당신은 실제로 외부 IP주소에 접속할 수 있다. 그래서 당신이 당신의 IP주소에 포트번호로 접속했을 때 당신은 문제없이 브라우저에서 접속할 수 있을 것이다.
브라우저 주소 표시줄에 다음을 입력하십시오.
<your ip address>:8000
예:
192.168.1.130:8000
당신은 settings.py을 편집해야 할 수도 있다. settings.py의 마지막 줄에 추가하십시오.
ALLOWED_HOSTS = ['*']
이것이...에 도움이 되기를 바라다.
AWS 사용자용.
나는 그곳에 도착하기 위해 다음 단계를 거쳐야 했다.
1) pip 및 django가 sudo 레벨에 설치되었는지 확인
- sudo apt-get 설치 python-pyth
- sudo pip 설치 django
2) 0.0.0.0/0에 대한 포트 80의 http를 포함하는 Security Group 인바운드 규칙 확인
- AWS 콘솔을 통해 구성됨
3) 허용됨_에 공용 IP 및 DNS 추가호스트
- 허용됨_HOST는 설정에서 찾을 수 있는 목록 개체다.파이를 치다
- 허용됨_HOSTES = ["75.254.65.19",ec2-54-528-27-21.compute-1.amazonaws.com"]
4) sudo와 함께 port 80에서 개발 서버 시작
- sudo python manage.py runserver 0:80
현재 다음 중 하나에서 사용 가능한 사이트(http의 경우 기본값인:80이 필요하지 않음):
- [공개 DNS] 예: ec2-54-528-27-21.compute-1.amazonaws.com
- [공용 IP] 즉, 75.254.65.19
여기에 덧붙이자면:
sudo python manage.py runserver 80
전화기나 컴퓨터로 이동하여 컴퓨터 내부 IP(예:
192.168.0.12
브라우저에 .
이 때 당신은 장고 서버에 연결되어야 한다.
This should also work without sudo:
python manage.py runserver 0.0.0.0:8000
2020년 업데이트 방법
python manage.py runserver yourIp:8000
ALLOWED_HOSTS = ["*"]
호스트 : 설정을 허용하기만 하면 된다.py :
ALLOWED_HOST = ['*']
서버 실행:
python3 manage.py runserver 0.0.0.0:8000
Android 앱을 연결하려면 AndroidManifest에서 인터넷 사용 권한을 추가하십시오.)
개점 터미널
type : ifconfig
ifconfig의 결과인드
IP ..inet IP를 한다. 이렇게 보여야 하는데..192.168.1.168 또는 유사한 192.168.x.x.x.x.x.
이제 평소와 같이 runserver를 실행하지만 이번에는 inet IP를 지정하십시오.
python3 manage.py runserver 192.168.x.x:8000(xpirit inetling manage.py)
또한
셋팅에파이를 치다
허용됨_ allowed_됨_HOSTS = HOSTES = ['*']
도커를 사용하는 경우 포트도 노출되도록 하십시오.
단자에 ngrok를 설치하다.
sudo apt-get install -y ngrok-client
실행 후:
ngrok http 8000
or
ngrok http example.com:9000
'Programing' 카테고리의 다른 글
사용내역 react-router-dom 잘못된 후크 호출 (0) | 2022.03.21 |
---|---|
Vue.js에서 사용자 지정 링크 구성 요소를 생성하는 방법 (0) | 2022.03.21 |
디스트패키지(dist-package)와 사이트패키지(site-package)의 차이점은? (0) | 2022.03.21 |
정적 자산을 nuxt 생성과 함께 동적으로 포함하는 방법 (0) | 2022.03.20 |
경로 문자열을 개체 값과 결합하는 Vue JS v-bind 이미지 src 특성이 작동하지 않음 (0) | 2022.03.20 |