Nginx 502 오류는 5xx (서버 오류) 서버가 유효한 요청을 처리하는 데 실패했다. 는 의미를 갖는 오류입니다.

4xx 번의 오류가 발생한 경우에는 system service 들이 정상동작을 하고 있는지 확인을 하는 것으로 대부분 해결 되었고, 5xx 는 조금 더 깊이있는 연구를 필요로 합니다. 이때에는 service 들은 모두 정상적으로 동작을 하고 있는 상황에서 개별 service 의 상태 log값을 확인하여 문제가 되는 부분을 수정해 주는 것으로 대부분 해결 가능하였습니다.

Django 서비스 에서는 여러개의 서비스가 물려있는데 Python (Django) -> Celery -> Flower 순서대로 운영상태와 개별 log 값에서 출력하고 있는 문제점이 있는지 단계적으로 확인 하였습니다.

두번째 Celery의 log 에는 오류가 없어서 시스템 상태값을 확인하였고 다음과 같은 오류를 출력하고 있었습니다.

$ sudo systemctl status celery            
 celery.service - CeleryService
     Loaded: loaded (/etc/systemd/system/celery.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-01-01 15:12:07 KST; 4s ago
   Main PID: 2449 (celery)
      Tasks: 5 (limit: 9198)
     Memory: 181.5M
        CPU: 4.327s
     CGroup: /system.slice/celery.service
             └─2449 /home/username/Source/.venv/bin/python3.11 
             /home/username/Source/.venv/bin/celery -A mysite worker -l info -P threads

 1 1 15:12:12 server celery[2449]:     from datago import info_krx as info_datago_krx
 1 1 15:12:12 server celery[2449]: ModuleNotFoundError: No module named 'datarun'

서비스를 실행할 때에 필요한 datarun 라는 모듈이 설치가 되지 았아서 문제가 발생한 것이었습니다. 해당 모듈은 Django 서비스의 운영과 배표에는 관여하지 있지않고 Celery 작업과만 연결되어 있어서 위와같은 상황이 벌어진 것이었습니다.


참고사이트