[개요]
이번 게시글은 백엔드 서버를 구성하는 과정을 다룬다.
백엔드 서버를 구성하고 자바 애플리케이션을 정상적으로 구동시키는 과정을 다룬다.
[백엔드 서버 구성 특징]
[서버 구성도]
위 서버 구성도의 "Backend Server"를 구성한다.
백엔드 서버의 특징은 다음과 같다.
① Backend 서버는 Java 애플리케이션("shortened-url-service-0.0.4-SNAPSHOT.jar")을 구동하고 있다.
② Nginx를 리버스 프록시로 사용하여 클라이언드가 보낸 Backend API 요청을 Backend 서버의 8080 포트로 Java 애플리케이션으로 전달한다.
③ DB 서버의 3306 포트를 통해 MySQL에 접근한다.
프로그램 작동의 간략한 흐름은 위와 같다.
클라이언트는 브라우저를 통해 프론트엔드 서버의 80포트로 접속한다.
원본 URL을 입력하고 단축 URL 생성 버튼을 누른다. ( EX) https://www.naver.com )
HTML 파일은 단축 URL 생성에 대한 백엔드 API 요청을 한다.
Nginx가 리버스 프록시로서 백엔드 API 요청을 백엔드 서버 8080 포트로 대신 전달한다.
백엔드 서버의 Java 애플리케이션은 원본 URL에 대한 단축 URL을 생성한다.
DB 서버의 3306 포트로 데이터 저장 쿼리를 보낸다.
DB 서버의 MySQL에서 테이블에 데이터를 저장한다.
Frontend Server - Backend Server 연결
Backend Server - DB Server 연결
이 두가지에 중점을 두고 서버를 구성해보자.
[백엔드 서버 구성하기]
1. 서버 생성
2. JAR 파일 서버 업로드
배포 대상 JAR 파일 : 'shorten-url-service-0.0.4-SNAPSHOT.jar'
파일의 50MB 크기 이상이기 때문에 GitHub 업로드 제한된다.
따라서, 내 PC -> Backend Server 직접 업로드
scp "{배포 대상 파일 경로}" root@{Backend Server IP}:/root/
Backend 서버의 password를 입력하면 파일 업로드가 시작된다.
[Backend 서버 - JAR 파일 확인]
3. 자바 버전 맞추기
배포 하려는 JAR 파일과 현재 Backend 서버의 Java 버전을 서로 맞춰야 한다.
[Java 프로젝트 버전 - Java17]
[현재 Backend 서버 Java 버전 - JDK - "1.8.0_432"]
서버의 버전을 Java17로 변경해야 한다.
1. Java 17 다운로드
## Java 17 다운로드 ##
yum install java-17-openjdk
2. Java 기본 설정을 Java17로 변경
'2' 를 입력하여 Java17을 기본 설정으로 변경한다.
[현재 Backend 서버 Java 버전 - "17.0.14"]
변경이 완료되었다.
4. 8080 포트 방화벽 개방
Java 애플리케이션이 구동하는 8080 포트의 방화벽을 개방해야 한다.
5. JDK 구동하기
## jar 파일 백그라운드 실행 ##
nohup java –jar shorten-url-service-0.0.3-SNAPSHOT.jar > output.log 2>&1 &
## nohup : 터미널이 종료되더라도 프로세스가 계속 실행
## java –jar {jar file name}.jar : JAR 파일을 실행
## > output.log 2>&1 : 표준 출력과 오류 로그를 output.log 파일에 저장
## & : 명령어를 백그라운드에서 실행
## 현재 실행중인 java 프로세스 확인 ##
ps –aux | grep java
'shorten-url-service-0.0.4-SNAPSHOT.jar' 이 구동되는 것을 확인 할 수 있다.
'클라우드 서버 배포' 카테고리의 다른 글
[3-Tier 프로젝트 배포] 5. 배포 프로젝트 구동 + 정상 작동 확인하기 (완) (0) | 2025.03.05 |
---|---|
[3-Tier 프로젝트 배포] 3. DataBase Server 의 MySQL 설치 및 구동 + 스키마 / 테이블 생성 (0) | 2025.03.05 |
[3-Tier 프로젝트 배포] 2. Front-end Server 의 Nginx 설치 및 구동 + 환경 설정 (0) | 2025.03.01 |
[3-Tier 프로젝트 배포] 1. 클라우드 서버 구축하기 (Vultr) (0) | 2025.03.01 |
[3-Tier 프로젝트 배포] 0. 프로젝트 구성 설명 및 배포 과정 설명 (0) | 2025.02.25 |