AWS 배포 -(3) Nginx 설정

2024. 1. 17. 14:56
728x90

배포 (1) 

https://hehesim.tistory.com/157

 

AWS 배포 -(1)

개발의 결과물을 웹 서비스로 사용자에게 보여주려면...? 1) 적당한 성능의 컴퓨터 구비 2) 컴퓨터에 개발한 웹 서비스 실행 3) 해당 컴퓨터를 인터넷에 연결, 24시간동안..! 4) 인터넷 사용자가 이

hehesim.tistory.com

 

배포 (2)

https://hehesim.tistory.com/158

 

AWS 배포 -(2)

(1)은 이전 글에 있습니다. https://hehesim.tistory.com/157 AWS 배포 -(1) 개발의 결과물을 웹 서비스로 사용자에게 보여주려면...? 1) 적당한 성능의 컴퓨터 구비 2) 컴퓨터에 개발한 웹 서비스 실행 3) 해당

hehesim.tistory.com

 

 

3. Nginx 설정

- Nginx : 높은 성능과 안정성을 보여주는 오픈소스 Web Server.

  • 여러 사용자에게 정적 자원을 효율적으로 전달.
  • 서버의 요청을 적절한 프로세스로 전달하는 Reverse Proxy
  • 여러 프로세스로 요청을 배분하는 Load Balancing
  • Application Server 대신 HTTPS 요청 해석 (TLS Termination)

** SpringBoot는 내부 Tomcat을 내장하여 자체적으로 Web Server로서 동작 가능하지만, 기능이 한정적이어서 주로 Nginx와 함께 활용한다.

 

** Nginx 설치 & 보안그룹 설정 **

1) apt로 Nginx 설치 

sudo apt install -y nginx

 

2) 설치 및 실행 확인

설치되면 Ubuntu의 프로그램을 관리하는 systemd라는 소프트웨어에 등록되어 자동으로 실행된다. 

>> 실행 확인 : systemctl 명령어 활용 -> active(running)이 나오면 설치가 잘 되었다.

sudo systemctl status nginx

 

-> 기본 설정은 80번 포트에서 요청을 듣도록 설정된다. 80번 포트는 ? HTTP 요청을 보낼 때 생략 가능한 포트번호이다. 

--> 이때 1) 보안규칙에 80번 포트를 추가해보자. (비권장...ㅎㅎ) or 

                2) 80번 포트를 관리하는 웹 서버를 설치한다. >> Nginx

 

3) 인바운드 규칙 편집하여 HTTP로 추가. 

: 규칙 추가 >

- 유형 : HTTP

- 포트범위 자동 80

- 소스 : Anywhere IPv4로 설정하여 규칙 저장. 

4) Nginx web server 연결 확인

: IP 주소만 넣어서 url을 치면 아래 페이지가 나온다.

 

** HTTP 요청을 Spring Boot로  **

- Nginx의 Reverse Proxy를 활용해 서버로 직접 들어오는 HTTP 요청을 Spring Boot로 전달한다.

 

** 설정 파일 : <서버ip주소>로 보내지는 HTTP 요청을 컴퓨터 내의 8080 포트로 전달하는 설정 파일.

> 설정 파일을 /etc/nginx/sites-enabled/ 폴더에 넣어주면 된다. 단계별로 진행.

server {
    listen 80;
    server_name <서버 ip 주소>;

    location = /favicon.ico { access_log off; log_not_found off; }

    location / {
        include proxy_params;
        proxy_pass http://localhost:8080;
    }

}

 

1)  해당 폴더로 이동

cd /etc/nginx/sites-enabled/

 

2)  해당 폴더에서 파일을 생성한다. 

: vi는 서버 환경에서 텍스트를 수정하는 도구 중 가장 인기있는 vim을 실행하는 명령어.

sudo vi spring_boot

 

3) vim에 설정을 복사하여 넣어준다.

 

4)  :wq를 입력하여 파일을 저장하고 vim 종료

5) ll 명령어로 spring_boot 파일이 잘 저장되었는지 확인 

 

6) Nginx를 재시작한다.

sudo systemctl restart nginx

 

7) 이후 다시 자바 프로젝트 폴더로 가서 재실행한다.

cd <프로젝트 폴더명>
java -jar build/libs/<프로젝트 jar파일명>

 

8) 포트번호 없이 실행시 나오는지 확인~~~~! 짠.

 

 

728x90

BELATED ARTICLES

more