502 Bad Gateway 오류 해결 방법: Nginx와 애플리케이션 포트 불일치
문제상황 : Elastic Beanstalk에 Spring boot 서버 배포 후 URL 접근 시 502 Bad Gateway, nginx 에러
AWS에 애플리케이션을 배포한 후 "502 Bad Gateway" 오류가 발생하는 경우, 이 가이드를 통해 문제를 파악하고 해결할 수 있습니다. 이 오류의 일반적인 원인 중 하나는 Nginx와 애플리케이션 서버 간의 포트 불일치입니다.
문제 요약
이 상황에서는 Nginx 에러 로그에 다음과 같은 내용이 표시됩니다:
connect() failed (111: Connection refused) while connecting to upstream, client: 61.101.67.17, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5000/"
한편 애플리케이션 로그에서는 포트 8080으로 초기화되었다고 표시됩니다:
Tomcat initialized with port 8080 (http)
원인
이 문제는 Nginx가 애플리케이션 서버에 포트 5000으로 연결하려고 하지만, 실제 애플리케이션은 포트 8080에서 실행 중이기 때문에 발생합니다. 이러한 포트 불일치로 인해 "Connection refused" 오류가 발생하게 됩니다.
해결 방법
이 문제를 해결하려면 애플리케이션이 Nginx에서 기대하는 올바른 포트(이 경우 5000)에서 실행되도록 구성해야 합니다. 아래 단계를 따르세요:
1단계: 애플리케이션의 포트 수정
application.properties
파일을 편집하여 다음 줄을 추가하세요:
server.port=5000
이를 통해 애플리케이션 서버를 포트 5000에서 실행하도록 설정합니다.
2단계: 애플리케이션 재배포
application.properties
파일에 변경 사항을 저장한 후 애플리케이션을 재배포하세요. 이제 Nginx가 애플리케이션 서버와 성공적으로 통신할 수 있을 것입니다.
결론
Nginx 뒤에서 애플리케이션을 배포할 때, Nginx와 애플리케이션 서버가 동일한 포트를 사용하도록 설정하는 것이 중요합니다. 위 단계를 따르면 포트 불일치로 인한 "502 Bad Gateway" 오류를 빠르게 해결할 수 있습니다.