이번 포스팅에서는 앞서 설명한 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에 등록하고 이를통해 무중단 배포하는 과정에대해 포스팅도 작성해 보도록 하겠다.
'Spring' 카테고리의 다른 글
[Spring] Nginx와 Spring Server를 활용한 무중단 배포 (0) | 2024.01.29 |
---|---|
[Spring] Nginx에 http 대신 https 적용하기 (0) | 2024.01.29 |
[Spring] Nginx란? (0) | 2024.01.29 |
[Spring] Kakao의 API 활용하여 소셜 로그인 구현 (1) | 2024.01.28 |
[Spring] 미니프로젝트 종료 이후 (0) | 2024.01.23 |