본문 바로가기

개발하자

호스트를 지정할 때 Fast API/uvicorn이 작동하지 않음

반응형

호스트를 지정할 때 Fast API/uvicorn이 작동하지 않음

나는 프론트엔드(예: Next.js 등)가 없는 윈도우 머신에서 uvicorn을 사용하여 파이썬에서 FastAPI 앱을 실행하고 있으므로 로컬 프론트엔드와 백엔드 간에 상호 작용이 없어야 한다. 다음 옵션 중 하나를 수행하면 정상적으로 작동합니다:

  1. 내 Mac에서 다음 코드를 실행하거나
  2. uvicorn에 대한 포트를 지정하지 않은 경우(uvicorn.run 호출에서 매개 변수 제거
  3. 포트 '127.0.0.1'을 지정하면 호스트를 전혀 지정하지 않을 때 호스트가 사용됩니다.
from fastapi import FastAPI
import uvicorn

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}


if __name__ == '__main__':
    uvicorn.run(app, port=8080, host='0.0.0.0')

브라우저에서 0.0.0:8080으로 이동하면 "이 사이트에 연결할 수 없습니다"라는 오류 메시지가 나타납니다.

충돌이 발생하지 않는지 확인하기 위해 현재 활성 포트를 확인했으며 0.0.0:8080이 사용되고 있지 않습니다.

현재 파일 구성은 다음과 같습니다:

working_directory
└── app
    ├── gunicorn_conf.py
    └── main.py

gunicorn_conf.py는 매우 단순하며 호스트와 포트를 설정하려고 합니다:

host = "0.0.0.0"
port = "8080"

호스트 '0.0.0.0'을(를) 지정할 때 이 작업을 수행하려면 어떻게 해야 합니까?




위의 질문을 쓰면서 해결책을 찾았고 다른 사람이 이 문제에 부딪힐 경우를 대비해 공유해야겠다고 생각했습니다. 그것이 작동하도록 하려면 "" 대신 ""를 웹 브라우저에 넣으면 잘 작동할 것이다. 이것은 파이썬 요청 패키지 등을 통해 엔드포인트에 도달하는 경우에도 작동합니다.




터미널에서 실행




, 소스 주소로 사용할 수 있습니다. 구현은 다양하다. 예를 들어 리눅스는 와 유사하게 취급한다.

당신의 웹 서버를 테스트할 때, 당신이 말하는 대로 요청을 보내는 것이 아마도 더 나은 생각일 것이다.


반응형