인프런 커뮤니티 질문&답변

이재은님의 프로필 이미지
이재은

작성한 질문수

비전공자도 이해할 수 있는 AWS 입문/실전

[보충 강의] 7-2. Spring Boot 서버를 EC2에 배포하기

Web server failed to start. Port 80 was already in use.

해결된 질문

작성

·

64

0

안녕하세요 강사님

 

수업 잘 듣고 있습니다.

다름이 아니라, 말씀해주신 방법대로 spring boot 서버를 배포하려고 하니 잘 안되네요

 

Web server failed to start. Port 80 was already in use.

 

라고 나오는데, 바로 직전 강좌에서 express를 80번 포트로 이미 배포한 상황에서 스프링부트 배포를 연속적으로 하려고 하니 이런 에러가 발생하는 것 같습니다

 

  1. 이런 경우 어떻게 기존 express를 삭제하고 스프링부트 배포를 할 수 있나요?

  2. 또한 스프링부트를 배포하는데 왜 자동으로 80번 포트로 배포가 되나 궁금합니다. HTTP의 권장 포트가 80번이기에 자동으로 80번으로 배정되는 것인가요

 

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 재은님! 수업 잘 들어주셔서 감사합니다:D

질문주신 내용에 대해 하나씩 답변 드려볼게요!

 

  1. 이런 경우 어떻게 기존 express를 삭제하고 스프링부트 배포를 할 수 있나요?

     

    - lsof -i :80 명령어를 사용하여 80번 포트를 사용하고 있는 프로세스를 찾고, kill [pid] 명령어로 해당 프로세스를 종료합니다.
    - pm2를 사용하여 실행 중인 경우 pm2 kill 명령어를 사용해 Express 앱을 중지할 수 있습니다.

  2. 스프링부트를 배포하는데 왜 자동으로 80번 포트로 배포가 되나 궁금합니다. HTTP의 권장 포트가 80번이기에 자동으로 80번으로 배정되는 것인가요


    스프링부트가 기본적으로 실행되는 포트는 8080번 포트에요! 하지만 지금 강의에서는 application.yml 파일에 80번 포트에서 배정되서 실행시키게끔 설정을 추가해뒀습니다. 이 때문에 80번에서 실행되는 거에요!

이 외로 궁금하신 점 있으시면 또 질문 남겨주세요~~~!!

0

안녕하세요, 인프런 AI 인턴입니다. 이재은님.

Spring Boot 서버 배포 중 “Port 80 was already in use.“라는 에러는 이미 해당 포트를 Express 서버가 사용 중일 때 발생하는 문제입니다. 이런 경우 해결 방법을 알고 싶으실 텐데, 관련된 유사 질문이 있어 참고하실 수 있도록 안내드립니다.

1. 기존 Express 서버 종료하기

기존 Express 서버를 종료하거나 포트를 변경하는 방법에 대해 아래 글들이 유사한 해결책을 제공합니다:
- 인스턴스에 배포한 Express 서버 중지 시키고 삭제 하는 방법

Express 서버 종료는 아래와 같은 방법으로 할 수 있습니다:
- lsof -i :80 명령어를 사용하여 80번 포트를 사용하고 있는 프로세스를 찾고, kill [pid] 명령어로 해당 프로세스를 종료합니다.
- pm2를 사용하여 실행 중인 경우 pm2 stop [앱 이름 또는 ID] 명령어를 사용해 Express 앱을 중지할 수 있습니다.
- pm2를 사용한다면, pm2 delete [앱 이름 또는 ID] 명령어로 Express 앱을 완전히 제거할 수 있습니다.

2. Spring Boot의 자동 포트 배정

Spring Boot의 기본 설정에서, 웹 서버는 기본 포트로 8080을 사용하지만, 설정 파일이나 환경 변수에서 server.port를 설정하지 않았다면 포트 80을 시도할 수도 있습니다. 일반적으로는 server.port=8080으로 설정되어 있으니, 포트 문제가 없다면 이 부분을 확인하시기 바랍니다.

  • HTTP의 표준 포트가 80번인 것은 사실이지만, 모든 웹 서버가 기본적으로 80번 포트를 사용하지는 않습니다. Spring Boot는 보통 사용자 편의를 위해 주요 설정을 application.properties 또는 application.yml을 통해 사용자에게 위임합니다. 따라서 해당 설정 파일을 통해 server.port를 명시적으로 설정할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이재은님의 프로필 이미지
이재은

작성한 질문수

질문하기