
저번 포스팅에서는 전반적으로 Nginx의 이론적인 부분을 다루었다. 이번에는 실제 Nginx를 활용해 Reverse Proxy중 Port Proxy를 활용해 프로젝트를 띄워보자!
Ubuntu에 Nginx 설치
sudo apt update
sudo apt install nginx
/etc/nginx/sites-available/default에 있음sudo nano /etc/nginx/sites-available/default
8080 포트는 Spring Boot 애플리케이션이 실행 중인 포트server {
listen 80; # Nginx가 수신할 포트
server_name localhost;
location / {
proxy_pass http://localhost:8080; # 모든 요청을 Spring Boot 애플리케이션으로 전달
proxy_set_header Host $host; # 원래 요청의 Host 헤더를 전달
proxy_set_header X-Real-IP $remote_addr; # 클라이언트의 IP 주소를 전달
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 포워딩된 IP 주소
proxy_set_header X-Forwarded-Proto $scheme; # 원래 요청의 프로토콜 (http/https)
}
}
sudo nginx -t # 설정 파일 테스트
sudo systemctl restart nginx # Nginx 재시작
웹 브라우저를 열고 http://domain-name:portNubmer(예:http://localhost:82)으로 접속하여 Spring Boot 애플리케이션이 정상적으로 동작하는지 확인합니다.
→ http://localhost:8080 으로 들어왔을 때

→ http:localhost:80 으로 들어왔을 때

→ Main Page가 아닌 URL로 들어왔을 때

지금은 내 프로젝트에서 Back-end를 담당하는 SpringBoot(eGov)만 다루었다.
하지만, 내 프로젝트는 실질적으로 Front-End를 담당하는 React와 함께 구성되어 있다.
React는 Port가 3000이고, SpringBoot는 Port가 8000이다. 하나의 프로젝트에서 움직이는데, 과연 Nginx 설정 파일에 location을 2개를 만들어야 할까, 아니면 1개로만 처리하면 될까? 그것은 다음 포스팅에!