글 / FastAPI 배포

헬스 체크 주소 설정

인증 없이 200 응답만 반환하는 주소 하나를 두면 서비스 점검과 기동 확인이 간단해진다.

작성일 · 읽는 시간 1분

헬스 체크 주소의 필요성

서비스의 동작 여부를 확인할 때마다 첫 화면을 요청하면 부하가 크고, 인증이 적용되어 있으면 401만 반환되어 동작 여부를 구분하기도 어렵다. 별도의 처리 없이 200 응답만 반환하는 주소가 하나 있으면 충분하다.

애플리케이션 구현

pythonmain.py
@app.get("/api/health")
async def health():
    return {"status": "ok"}

Nginx 인증 예외

사이트 전체에 인증이 적용되어 있다면 이 주소만 인증에서 제외한다.

nginx
location = /api/health {
    auth_basic off;
    proxy_pass http://127.0.0.1:5011;
}

헬스 체크 요청이 nginx 인증 예외를 거쳐 앱에 도달하는 경로

용도

  • 기동 스크립트는 이 주소가 응답할 때까지 대기한다.
  • 점검 시 curl 명령 한 줄로 확인한다.