AWS 배포 -(3) Nginx 설정
배포 (1)
https://hehesim.tistory.com/157
배포 (2)
https://hehesim.tistory.com/158
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) 포트번호 없이 실행시 나오는지 확인~~~~! 짠.
'Programming > Cloud' 카테고리의 다른 글
AWS 배포 -(5) HTTPS 적용하기 (0) | 2024.01.17 |
---|---|
AWS 배포 -(4) 가비아 도메인 설정 (0) | 2024.01.17 |
AWS 배포 -(2) 가상 컴퓨터에 자바설치/ 프로젝트 불러오기/ JAR파일로 스프링부트 실행 / EC2 보안설정 (0) | 2024.01.17 |
AWS 배포 -(1) EC2 생성과 가상 컴퓨터 실행 (0) | 2024.01.17 |
AWS를 사용하기 위한 도구 (0) | 2023.10.16 |