일반적으로 배포된 웹 사이트를 보면 IP 주소로 접근하지 않고 도메인 주소로 접근을 한다. 왜냐하면 IP 주소는 기억하기 어렵기 때문이다. 그래서 대부분의 웹 사이트는 도메인 주소를 가지고 있다.
도메인을 연결시킬 때 도메인 주소와 EC2 IP 주소를 연결시킨다. 그러면 도메인 주소로 접근했을 때 IP 주소로 변환해서 접근을 할 수 있게 된다. 즉, 주소창에 jscode.kr로 입력하는 순간, 13.209.26.55로 변환해서 요청을 보내게 된다. 그럼 우리가 배웠던 그대로 Nginx가 웹 사이트에 필요한 파일(HTML, CSS, JS, 이미지 파일 등)로 응답해준다.
그렇다면 하나의 서버에서 두 종류의 웹 사이트를 배포하고 싶다면 어떻게 해야할까?
두 종류의 웹 사이트를 배포한다고 하더라도, 각각의 웹 사이트마다 도메인을 가지고 있는 경우가 일반적이다. 예를 들어, JSCODE 홈페이지는 jscode.kr이라는 도메인 주소로 접근하게 만들고 싶고, 관리자용 홈페이지는 admin.jscode.kr이라는 도메인 주소로 접근하게 만들고 싶을 수 있다.
그런데 위에서 잠깐 얘기했다시피 도메인 주소는 IP 주소와 연결시키는 방식이다. 그렇다면 jscode.kr의 도메인도 EC2의 IP 주소(ex. 13.209.26.55)에 연결을 시키고, admin.jscode.kr의 도메인도 EC2의 IP 주소(ex. 13.209.26.55.)에 연결을 시키게 된다. 즉, 어떤 도메인 주소로 요청이 들어오던 EC2의 Nginx로 요청이 들어온다는 뜻이다. Nginx의 입장에서는 jscode.kr로 요청이 들어온 거랑 admin.jscode.kr로 요청이 들어온 거랑 구별해서 웹 사이트를 보여줄 수 있어야 한다.
Nginx는 어떤 도메인 주소로 요청이 들어오냐에 따라서 그에 맞는 웹 사이트로 응답할 수 있는 기능을 가지고 있다. 지금부터 이 기능을 구현해보자.