>source

간단히 말해서, 저는 장고 프로젝트를 만들고 전문가 용 장고 2.2를 참조로 사용했습니다 (모델에 몇 가지 필드를 더 만들었습니다). 그러나 보안 장에 도달하여 터미널에서 도커 명령을 실행하려고 시도하면 프로그래밍 오류가 발생합니다.

조사하고 디버깅을 시도한 후 프로젝트에서 모든 마이그레이션을, 도커 컨테이너에서 볼륨을 삭제하고 특정 파일/코드를 삭제/주석 처리하기로 결정했습니다.

여기에서 모든 마이그레이션을 다시 실행했으며 이제 터미널을 확인하면 아직 적용되지 않은 마이그레이션 21 개와 "Starting development server athttp://0.0.0.0:8000/ ". 링크를 클릭하면 "Disallowed Host at/... Invalid HTTP_HOST header : ..."가 표시됩니다.

내 docker-compose.yml 및 settings.py 가이 오류에 기여하는 것처럼 보이기 때문에 무엇이 잘못되었는지 궁금합니다. "https://127.0.0.1:8000/"에 대한 링크를 얻기 위해 터미널을 가져 오려고합니다.

settings.py : postgres 데이터베이스를 사용하고 있습니다.

DEBUG = int(os.environ.get('DEBUG', default=0))
ALLOWED_HOSTS = []

docker-compose.yml : 비밀 키를 생략했습니다.

version: '3.8'
services:
  web:
    build: .
    command: python /code/manage.py runserver 0.0.0.0:8000
    environment:
      - DEBUG=1
      - ENVIRONMENT=development
    volumes:
      - .:/code
    ports:
      - 8000:8000
    depends_on:
      - db
  db:
    image: postgres:12.3
    volumes:
      - postgres_data:/var/lib/postgresql/data/
volumes:
  postgres_data:

참고 : 프로그래밍 오류를 삭제하고 마이그레이션을 삭제하기 전에 docker-compose.yml에 0.0.0.0:8000이 있음에도 불구하고 127.0.0.1:8000이 작동하도록 할 수있었습니다.

어떤 도움이라도 대단히 감사합니다.

  • 답변 # 1

    확인. 장고에서 작업하기 위해 https://127.0.0.1:8000을 얻을 수없는 이유를 알아낼 수있었습니다. 코드에는 아무런 문제가 없었지만 브라우저에서 캐시를 새로 고치는 것뿐이었습니다 (이 경우에는 파이어 폭스였습니다).

  • 답변 # 2

    Python 웹 서비스로만 https 포트에서 사이트를 제공하려면 https://github.com/teddziuba/django-sslserver를 사용할 수 있습니다.

    하지만 가장 좋은 방법은 django + wsgi + Nginx를 사용하는 것입니다.

    도커 이미지에서 (wsgi 또는 gunicorn)과 같은 wsgi 스크립트로 프로젝트를 시작합니다.

    wsgi 스크립트는 프로젝트의 작업자를 처리합니다.

    그런 다음 Nginx로 처리되는 Nginx 및 https 인증서로 요청 처리가 완료되고 Django 프로젝트는 http 포트 또는 Linux 소켓 파일에서만 실행됩니다.

  • 이전 c# - 인덱스가 범위를 벗어났습니다 하지만 내가 excecute하면 itemcount ()가 1을 반환합니다
  • 다음 ios - date ()를 기초로 스톱워치 - swiftui