[Spring] Nginx에 Spring Server 연동하기

이번 포스팅에서는 앞서 설명한 nginx를 활용하여 가상 서버를 연결하는 작업을 해보도록 하겠다.

본 글쓴이는 빠른 실습을 위해 1대의 nginx와 1대의 가상머신만 준비해서 실습을 진행해보도록 하겠다.

Nginx Setting

 

1. Nginx 서버 네트워크 설정

 

2. Nginx 설치 및 설치 확인

yum install -y nginx
rpm -qa | grep nginx

 

 

3. Nginx 실행 및 상태 확인

systemctl start nginx
systemctl status nginx

 

 

4. Nginx 포트번호 확인

- 일반적으로 Nginx는 80번 포트가 default로 설정되어있다.

- 실행중인 프로그램의 포트번호는 netstat -anlp | grep nginx 로 조회 가능

- yum install -y net-tools 명령어를 통해 netstat 명령어 설치 가능

 

5. 방화벽 및 SELinux를 해제해주어야 외부에서 80번 포트를 통해 가상머신에 접근이 가능하다

// 방화벽 해제
systemctl stop firewalld

 

SELinux 비활성화 - 보안이 취약한 리눅스 시스템 액세스 권한을 제어하기위해 미국 국가안보국에서 개발한 보안 아키텍쳐
setenforce 0

 

6. Nginx 접속 - 설정한 IP 주소로 접속 : 123.123.123.77:80

 

 

Spring Server Setting

 

1. Spring Server를 배포할 가상 머신 준비

- IP = 123.123.123.78으로 세팅

 

 

2. 실행가능한 Spring Server 준비

- 자습용 Spring Project를 활용

- Spring Server를 Maven의 Package 기능을 활용하여 실행가능한 Jar 파일로 변환

- jar파일을 target 밑에서 찾을 수 있다.

 

3. Spring Server를 가상머신으로 옮기기

- 윈도우 환경에서 가상머신이 설치된 Vmware 환경에 옮기기 위해 FileZila를 활용하였다.

- 이와 관련된 내용은 앞서 이미 작성한 바 있어, 자세한 설명은 생략하겠다.

 

4. 옮긴 Spring Server를 Nginx에 등록하기

1) nginx 설정 파일  : vi /etc/nginx/nginx.conf

2) 접근하여 실행하고자하는 Spring Server가 설치된 가상머신 Ip를 등록해준다. 47번째줄 - 51번째

3) 내용이 변경될때마다 nginx를 재시작해준다

systemctl restart nginx

 

5. Spring Server 가동

1) open jdk 11 설치 

yum install java-11-openjdk-devel.x86_64

 

2) 방화벽 해제 

systemctl stop firewalld
setenforce 0

 

3)  jar파일 실행

java -jar Inflearn-0.0.1-SNAPSHOT.jar

 

 

Nginx와 Spring Server간 연결 및 동작 확인

 

 

- 이로써 다음과 같은 연결 구조를 가지게 되었다.

- 이때 클라이언트는 요청을 보낼때 목적지 IP는 Nginx가 설치된 가상 머신,  URI는 Spring Server 측을 합쳐서 사용한다.

- Nginx는 클라이언트와 서버 사이에 중개 서버로 작용하기 때문이다. (로드밸런싱과 동일한 역할)

- Nginx의 역할은 앞서 포스팅 글을 참고하면 도움이 될 것이다.

 

실행결과

 

 

지금까지 Nginx에 Spring Server를 연동하는 방법을 포스팅 해봤는데, 이후에는 여러대의  Spring Server를 Nginx에 등록하고 이를통해 무중단 배포하는 과정에대해 포스팅도 작성해 보도록 하겠다.