카테고리 없음

[트러블 슈팅] 502 Bad Gateway / 백엔드 서버 Restart

bay07 2024. 9. 20. 21:12

1. Nginx 로그 확인

먼저, Nginx의 에러 로그를 확인해보세요. 로그 파일은 일반적으로 /var/log/nginx/error.log에 위치합니다. 로그에서 백엔드 서버와의 연결 오류, 타임아웃 또는 기타 오류 메시지를 확인할 수 있습니다.

tail -f /var/log/nginx/error.log

2. Nginx 설정 파일 확인

설정 파일에서 프록시 대상이 제대로 설정되었는지, 서버 블록 또는 업스트림 설정이 올바르게 되어 있는지 확인해야 합니다. Nginx의 설정 파일을 열어 proxy_pass 등의 설정이 올바른지 점검하세요.

sudo nano /etc/nginx/nginx.conf

또는 현재 사용 중인 업스트림 서버 설정을 확인하세요. (app_green, app_blue)

 
upstream app_green { server localhost:8081; } upstream app_blue { server localhost:8082; }

Nginx 설정이 변경되었다면, 설정 파일을 다시 로드해보세요.

sudo nginx -t # 설정 파일 검사 sudo systemctl reload nginx # 설정 재로드

3. 백엔드 서버 상태 확인

백엔드 서버(8081 또는 8082에서 실행 중인 서비스)가 제대로 작동하는지 확인합니다. curl 명령어를 사용하여 해당 포트에서 응답이 오는지 점검해보세요.

curl localhost:8081 curl localhost:8082

백엔드 서버가 응답하지 않는다면, 해당 서비스가 제대로 실행 중인지 확인하고, 필요한 경우 재시작하세요.

sudo systemctl status <backend_service> sudo systemctl restart <backend_service>

4. Docker 컨테이너 확인

현재 백엔드가 Docker 컨테이너로 동작 중이라면, 컨테이너 상태를 점검하세요. 컨테이너가 실행 중인지, 로그에 에러가 발생했는지 확인합니다.

 
docker ps # 실행 중인 컨테이너 확인 docker logs <container_name> # 컨테이너 로그 확인

5. 포트 충돌 확인

백엔드가 실행 중이어도 포트가 이미 다른 프로세스에서 사용 중일 수 있습니다. 포트 충돌 여부를 확인해 보세요.

 
sudo lsof -i :8081 sudo lsof -i :8082

 

  1. 백엔드 서버 상태 확인
    • 8081 포트에서 백엔드 서버가 제대로 실행 중인지 확인해야 합니다.
    • 아래 명령어로 8081 포트에서 서비스가 실행되고 있는지 확인하세요.
     
    sudo lsof -i :8081
    만약 아무 결과도 나오지 않는다면, 백엔드 서버가 실행 중이지 않을 가능성이 큽니다. Docker 컨테이너에서 실행 중이라면, 컨테이너가 실행되고 있는지 확인하세요.
  2.  
    docker ps
  3. 백엔드 서버 재시작
    • 백엔드 서버가 비정상적으로 종료되었을 수 있습니다. 이를 재시작해 주세요.
    • 백엔드 서버가 직접 실행 중이라면 아래 명령어로 서비스를 재시작하세요.
     
    sudo systemctl restart <backend_service>
    • 만약 Docker 컨테이너에서 실행 중이라면, 컨테이너를 다시 시작하세요.
     
    docker restart <container_name>
  4. Nginx 설정 확인
    • Nginx가 올바른 백엔드 서버로 프록시하고 있는지 확인합니다. 현재 로그에서는 127.0.0.1:8081로 연결을 시도하고 있습니다. 만약 백엔드가 다른 포트에서 실행 중이라면, Nginx 설정을 수정해야 합니다.
     
    sudo nano /etc/nginx/nginx.conf
    • 로그에서 SSL_do_handshake() 에러도 보입니다. SSL 핸드셰이크 과정에서 문제가 발생하는 경우, SSL 인증서 및 키 파일 설정을 확인해야 합니다.SSL 설정 문제 확인
     
    sudo nano /etc/nginx/nginx.conf
    SSL 관련 설정(ssl_certificate, ssl_certificate_key)이 제대로 되었는지 확인 후, 잘못된 설정이 있는지 점검하세요.
    • 설정을 수정한 후에는 Nginx 설정을 테스트하고 재시작해야 합니다.Nginx 설정 테스트 및 재시작
    sudo nginx -t # 설정 파일 검사 sudo systemctl reload nginx # 설정 재로드