
저번 포스팅에서는 실습 중 하나로 백엔드만 Port Proxy해서 띄워 보았다.
하지만, 내 프로젝트는 실질적으로 Front-End를 담당하는 React와 함께 구성되어 있다.
React는 Port가 3000이고, SpringBoot는 Port가 8000이다. 하나의 프로젝트에서 움직이는데, 과연 Nginx 설정 파일에 location을 2개를 만들어야 할까, 아니면 1개로만 처리하면 될까? 한 번 알아보자!
/etc/nginx/sites-available/default에 있음sudo nano /etc/nginx/sites-available/default
server {
listen 82;
server_name localhost; # 로컬에서 테스트할 경우
location / {
proxy_pass http://localhost:3000/; # React 애플리케이션
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

→ http://localhost:82/api/devices?~~~ 으로 들어가면?

Front-End가 있다면 Front-End에서 각 URL에 대한 화면을 갖고 있을 것이다.
이 중에서 정적 파일이 아니라, DB를 거쳐야 하는 등의 동적 작용이 발생할 경우, SpringBoot에서 @GetMapping을 통해 api 형식을 받아 비즈니스 로직을 처리한 후, 데이터를 다시 Front 영역에 뿌려지게 된다.
따라서, local에서 React와 SpringBoot를 Run하고, Nginx도 Run한 상태이기 때문에 Nginx의 설정 파일에서 React 영역만 locatoin에 할당하면 된다.
백엔드를 2개 이상 만들어서 Reverse Proxy를 하려면 어떻게 해야 할까? 그것은 다음 포스팅에!