[개요]
프로젝트를 배포해야 할 필요성이 생겼다.
프로젝트 배포 과정을 자세히 기록하여, 배포 과정 전반에 대한 이해를 확립하기 위해 해당 포스팅 시리즈를 기획하였다.
가장 일반적인 웹 서비스 배포하는 방식으로 진행할 것이다.
"Front-end Server" - "Back-end Server" - "Database Server (외부DB)"
[프로젝트 설명]
배포 대상인 프로젝트는 웹 애플리케이션이다.
Front-end - html, javascript, css
Back-end - spring framework, java, gradle
DB - mysql
위와 같이 3부분으로 나눌 수 있다.
프로젝트 제목은 "단축 URL 서비스" 이다.
긴 URL을 입력하면 짧은 URL을 생성해주는 서비스이다.
단축된 URL을 누르면 원본URL로 리다이렉트 해준다.
[단축 URL 서비스 설명]
https://notorious.tistory.com/431
[배포 계획]
1. 배포를 위한 서버 구성
배포 대상 프로젝트 구성은 위에 언급한것과 같이 가장 일반적인 웹 서비스 구성인 'Front-end' / 'Back-end' / 'DB 구조이다.
각각 부분마다 독립적인 서버로 구성할 것이다.
"Front-end Server" - "Back-end Server" - "Database Server (외부DB)"
2. 서버 구성도
3개의 서버의 구성을 그림으로 표현해보았다.
프론트엔드 서버에는 프론트엔드 파일만 위치한다.
백엔드 서버에는 jar 파일로 자바 애플리케이션을 구동한다.
데이터베이스 서버에서는 MySQL 구동한다.
가장 중요한 부분은 'Front-end Server' 에 위치한 'Nginx'이다.
Nginx를 '리버스 프록시'로 사용하여 CORS 오류를 해결할 것이다.
[CORS 오류란?]
https://notorious.tistory.com/437
[Web / Browser] CORS 정책이란?
[개요]CORS 정책은 '외부 API를 사용하는 웹 서비스' 혹은 'Frontend / Backend를 구분하는 웹 서비스'를 배포할 때 종종 맞이하게 된다. 하지만 다양한 외부 공격으로부터 보안 취약점을 극복하기 위해
notorious.tistory.com
Nginx 의 프록시 패스 설정을 이용하여, 브라우저가 백엔드 api를 직접 요청하는것이 아닌 Nginx가 백엔드 api를 요청하도록 처리할것이다.
이를 통해 CORS 이슈를 해결하고자 한다.
[배포 과정]
0. 사전에 만들어 놓은 "단축 URL 서버스" 프로젝트의 JAR 파일 생성
1. 클라우드 서버 구축하기 (Vultr 이용)
2. Front-end Server 의 Nginx 설치 및 구동 + 환경 설정
3. DataBase Server 의 MySQL 설치 및 구동 + 스키마 / 테이블 생성
4. Back-end Server 의 jar 파일 구동 (Java 버전 확인 등... 환경 설정 작업 후)
앞으로 포스팅을 통해 풀어나가 보겠다.
'클라우드 서버 배포' 카테고리의 다른 글
[3-Tier 프로젝트 배포] 2. Front-end Server 의 Nginx 설치 및 구동 + 환경 설정 (0) | 2025.03.01 |
---|---|
[3-Tier 프로젝트 배포] 1. 클라우드 서버 구축하기 (Vultr) (0) | 2025.03.01 |
[SpringBoot] 단축 URL 서비스 프로젝트 (0) | 2025.02.16 |