10.2 엔진엑스 설치와 스프링 부트 연동하기
가장 먼저 EC2에 엔진엑스를 설치
엔진엑스 설치
EC2에 접속해서 다음 명령어로 엔진엑스를 설치한다.
sudo yum install nginx
설치가 완료되었으면 다음 명령어로 엔진엑스를 실행한다.
sudo service nginx start
엔진엑스가 잘 실행되었다면 다음과 같은 메시지를 볼 수 있다.
Starting nginx: [ OK ]
외부에서 잘 노출되는지 확인해 보겠다.
보안 그룹 추가
먼저 엔진엑스의 포트번호를 보안 그룹에 추가한다. 엔진엑스의 포트번호는 기본적으로 80이다. 해당 포트 번호가 보안 그룹에 없으니 [EC2->보안 그룹-> EC2 보안 그룹 선택-> 인바운드 편집]으로 차례로 이동해서 변경한다.
리다이렉션 추가
8080이 아닌 80포트로 주소가 변경되니 구글과 네이버 로그인에도 변경된 주소를 등록해야만 한다. 기존에 등록된 리디렉션 주소에서 8080 부분을 제거하여 추가 등록한다. 앞서 진행된 8.5절을 참고하여 구글과 네이버에 차례로 등록한다.
추가한 후에는 EC2의 도메인으로 접근하되, 8008 포트를 제거하고 접근해 본다. 즉, 포트번호 없이 도메인만 입력해서 브라우저에 접속한다. 그럼 다음과 같이 엔진엑스 웹페이지를 볼 수 있다.
엔진엑스와 스프링 부트 연동
엔진엑스가 현재 실행 중인 스프링 부트 프로젝트를 바라볼 수 있도록 프록시 설정을 하겠다. 엔진엑스 설정 파일을 열어본다.
sum vim /etc/nginx/nginx.conf
설정 내용 중 server 아래의 location / 부분을 찾아서 다음과 같이 추가한다.
proxy_pass http://localhost:8080;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
① proxy_pass
- 엔진엑스로 요청이 오면 http://localhost:8080로 전달
② proxy_set_header XXX
- 실제 요청 데이터를 header의 각 항목에 할당한다.
- 예) proxy_set_header X-Real-IP $remote_addr: Request Header의 X-Real-IP에 요청자의 IP를 지정한다.
수정이 끝났으면 :wq 명령어로 저장하고 종료해서, 엔진엑스를 재시작한다.
sudo service nginx restart
다시 브라우저로 접속해서 엔진엑스 시작 페이지가 보이면 화면을 새로 고침한다.
엔진엑스가 스프링 부트 프로젝트를 프록시하는 것이 확인된다. 본격적으로 무중단 배포 작업을 해보자
출처 : https://qkrtmdgus84.github.io/springboot%20&%20aws/SpringBoot-&-AWS-10/
출처 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 [이동욱 지음]
'Back-End > Springboot와 AWS로 혼자 구현하는 웹 서비스' 카테고리의 다른 글
Chapter 10. 24시간 365일 중단 없는 서비스를 만들자 (1) (0) | 2022.05.07 |
---|---|
Chapter 09. 코드가 푸시되면 자동으로 배포해 보자 - Travis CI 배포 자동화 (4) (0) | 2022.05.01 |
Chapter 09. 코드가 푸시되면 자동으로 배포해 보자 - Travis CI 배포 자동화 (3) (0) | 2022.04.30 |
Chapter 09. 코드가 푸시되면 자동으로 배포해 보자 - Travis CI 배포 자동화 (2) (0) | 2022.04.30 |
Chapter 09. 코드가 푸시되면 자동으로 배포해 보자 - Travis CI 배포 자동화 (1) (0) | 2022.04.29 |