서버를 구성하면서 웹서버로 NGINX
를 사용했는데, 도메인에 리버스 프록시를 적용했던 과정에 대해 간단히 정리하고자 한다. 왜 사용하는지와 같은 자세한 내용은 추후에(학습을 통해) 자세히 정리해보도록 하겠다.
Web Server와 WAS의 차이와 웹 서비스 구조 에 개념적인 정리가 잘 되어있는데, 참고하면 좋을 것 같다.
방법은 정말 간단하다. NGINX
설정 파일에 설정을 추가해주면 된다.
특별히 어떤 설정을 추가하지 않고 NGINX
를 설치했다면(필자는 우분투를 사용했다) 아래와 같은 경로에 default
라는 설정 파일이 있을 것이다.
default
라는 파일을 sudo vi /etc/nginx/sites-available/default
명령어를 통해 열어보면 아래와 같이 설정을 확인할 수 있다. 처음 설정 파일과 마주하면 조금 다른 형태이긴 하겠지만, 아래와 같이 변경해주면 된다.
위 사진에서 1번에 해당한다. server_name
부분에 리버스 프록시를 적용하고자 하는 도메인을 입력해준다.
2번으로 표시해둔 location / { }
설정 내부에 [ ]
로 표시해둔 코드블럭을 그대로 입력해준다. 이때 http://localhost:9002;
부분에서 9002
는 우리가 서버에서 실행할 Spring Boot
의 포트번호를 입력해줘야 한다. 이때 location / { }
는 root(/)
로 요청이 들어오면 어디와 연결해줄지를 정의한다고 보면 된다. 여기서는 9002
포트로 요청을 넘겨준다.
이녀석 때문에 엄청 삽질했다. 위 사진에 ☆로 표시해둔 3번 부분이다. 간단하게 이해한 바를 써보자면, NGINX
서버로 요청이 들어왔을 때, 먼저 NGINX
웹서버에서 해당 uri
의 파일을 찾게되는데 이때 웹서버에 존재하지 않을 경우 404 Not Found
페이지를 보여주게 된다. 따라서 주석처리를 해주어야 제대로 된 요청 페이지를 볼 수 있게 된다.
참고!
정확하게는, 정적인 페이지를 검색하는 듯 하다. 찾았는데 없으면 404를 리턴하는 형식. 만약 정적인 페이지를 사용한다면 다른식으로 처리해줘야 할 것이다.