본문 바로가기
프로그래밍

Spring Boot 애플리케이션의 AWS Lightsail 배포: Nginx, Tomcat, 그리고 CORS 설정 가이드

by 김포이 2024. 9. 26.

 

일단 나는 배포에서는 초보자다.

배포..  EC2로 깔작한 수준이고 이번에는 lightsail 을 이용하였다.

 

구글링, AI 로 얻은 정보로 배포를 꾸역꾸역 하긴 했는데 

왜 nginx 를 쓰는건지, 이 기능은 무엇인지 정리가 필요할 듯 해 이 글을 작성한다.

 

더보기
  1. Java Spring Boot 애플리케이션
    • 역할: 백엔드 로직을 처리하는 메인 애플리케이션
    • 기능: API 엔드포인트 제공, 데이터베이스 연동, 비즈니스 로직 처리 등
  2. JAR 파일
    • 역할: 컴파일된 Java 애플리케이션
    • 기능: Spring Boot 애플리케이션을 실행 가능한 형태로 패키징한 파일
  3. AWS Lightsail
    • 역할: 가상 프라이빗 서버(VPS) 제공
    • 기능: 인터넷에 연결된 가상 서버를 제공하여 애플리케이션을 호스팅
  4. Ubuntu 서버
    • 역할: 운영 체제
    • 기능: 하드웨어 리소스 관리, 프로세스 실행 환경 제공
  5. Nginx
    • 역할: 웹 서버 및 리버스 프록시
    • 기능:
      • 정적 파일 서빙
      • HTTP 요청을 받아 적절한 백엔드 서버(이 경우 Tomcat)로 전달
      • SSL/TLS 암호화 처리
      • 로드 밸런싱 (필요시)
  6. Tomcat
    • 역할: Java 웹 애플리케이션 서버
    • 기능:
      • Java 서블릿 컨테이너 제공
      • Spring Boot 애플리케이션 실행
      • HTTP 요청 처리 및 응답 생성

배포 과정 흐름:

  1. Spring Boot 애플리케이션을 개발하고 JAR 파일로 빌드합니다.
  2. JAR 파일을 Lightsail Ubuntu 서버에 업로드합니다.
  3. Tomcat이 JAR 파일을 실행하여 Spring Boot 애플리케이션을 구동합니다.
  4. Nginx는 외부에서 들어오는 HTTP 요청을 받아 Tomcat으로 전달합니다.
  5. Tomcat에서 실행 중인 Spring Boot 애플리케이션이 요청을 처리하고 응답을 생성합니다.
  6. Nginx가 이 응답을 다시 클라이언트에게 전달합니다.

이 구조에서 Nginx는 주로 리버스 프록시 역할을 하며, Tomcat은 실제 Java 애플리케이션을 실행하는 역할을 합니다. Nginx를 사용하면 보안, 성능 최적화, SSL 처리 등의 이점을 얻을 수 있습니다.

CORS 설정을 Nginx에서 하는 이유는 모든 HTTP 요청이 먼저 Nginx를 통과하기 때문입니다. Nginx에서 적절한 CORS 헤더를 추가하면 브라우저의 CORS 정책을 만족시킬 수 있습니다.

 

 

 

 

'프로그래밍' 카테고리의 다른 글

[프로그래머스] n의 배수_자바  (0) 2024.08.14
RESTful API 란?  (0) 2024.08.07