Programing

외부로부터 로컬 Django 웹서버에 액세스하는 방법

c10106 2022. 3. 21. 08:32
반응형

외부로부터 로컬 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

여기에 덧붙이자면:

  1. sudo python manage.py runserver 80

  2. 전화기나 컴퓨터로 이동하여 컴퓨터 내부 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 

참조URL: https://stackoverflow.com/questions/2260727/how-to-access-the-local-django-webserver-from-outside-world

반응형