스프링 배포 - 프로필 설정과 서버 구성 전략

스프링 부트 애플리케이션을 다양한 환경(개발, 테스트, 운영)에 배포하는 방법, 프로필 설정 전략, JAR/WAR 패키징 차이점, 포트 포워딩 설정 및 백그라운드 실행 기법을 상세히 설명하는 실용적인 가이드입니다.



배포 (+원하는 프로필로)

AWS나 cafe24나 로컬 등에 서버 배포(구동) ㄱ ㄱ ㄱ

jar vs war

  • jar은 내부 톰캣 사용, war은 외부 서버 사용으로 이해하면 됨 -> 보통 본인은 그냥 내부 톰캣 사용해서 배포
  • 주의: 외부 톰캣에서 webapp 경로를 사용하는 편인데, war은 사용가능하나 jar은 사용불가


포트생략법

  • 배포할 때 http://localhost:8080 이 아닌 http://localhost 로 접속법(포트생략법)
  • http는 80포트를 기본값으로 사용하고, 개발할 때 사용한 포트는 8080포트
  • 따라서 “포트포워딩” 을 사용해서 80포트 접속시 -> 8080포트로 변경해주면 끝
  • 80포트 -> 8080포트 포트포워딩 예시
    • 등록 : sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
    • 조회 : iptables -nL PREROUTING -t nat --line-numbers
    • 삭제 : iptables -t nat -D PREROUTING {number}


“실행 시점” 에 원하는 프로필 사용!!

  1. IDE에서 Application 에 --spring.profiles.active=prod 하거나 (물론 값도 가능)

    인텔리J에서 활용한 예시(사진)


    image
    prod(배포 프로필) image
    default(개발 프로필) image

  2. 터미널에서 명령어로 jar or war 실행. 2가지 방법 소개 (해당 파일 경로에서 꼭 입력)

    nohup은 백그라운드에서 실행!! -> nohup.out에 로그남음

    nohup java -jar secret-art-typing-gallery-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &

    nohup java -Dspring.profiles.active=prod -jar secret-art-typing-gallery-0.0.1-SNAPSHOT.jar &



댓글남기기