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
- 백엔드 서버 상태 확인
- 8081 포트에서 백엔드 서버가 제대로 실행 중인지 확인해야 합니다.
- 아래 명령어로 8081 포트에서 서비스가 실행되고 있는지 확인하세요.
sudo lsof -i :8081 -
docker ps
- 백엔드 서버 재시작
- 백엔드 서버가 비정상적으로 종료되었을 수 있습니다. 이를 재시작해 주세요.
- 백엔드 서버가 직접 실행 중이라면 아래 명령어로 서비스를 재시작하세요.
sudo systemctl restart <backend_service>- 만약 Docker 컨테이너에서 실행 중이라면, 컨테이너를 다시 시작하세요.
docker restart <container_name> - 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 -
- 설정을 수정한 후에는 Nginx 설정을 테스트하고 재시작해야 합니다.Nginx 설정 테스트 및 재시작
sudo nginx -t # 설정 파일 검사 sudo systemctl reload nginx # 설정 재로드