가상 호스트
가상 호스트는 영어로 Virtual Host 호스트라고 한다. Host는 네트워크에 연결된 하나의 컴퓨터를 의미하는데, Virtual Host는 한대의 컴퓨터로 마치 여러대의 컴퓨터가 존재하는 것처럼 동작하도록 한다는 뜻이다. 이를테면 http://egoing.net, http://deving.net 으로 접속 했을 때 둘다 1.226.82.52 IP를 가르키고, 1.226.82.52 IP에 해당하는 Host가 각각의 도메인에 따라서 서로 다른 페이지를 서비스 하게 할 수 있다.
가상호스트 사용법
가상호스트를 지정하기 위해서는 nginx.conf 파일에 server 블록을 사용하면 된다. 하나의 호스트에서 하나의 웹서비스만을 운영한다면 이런 방식도 좋지만, 만약 하나의 호스트에서 복수의 서비스를 운영한다면 본 토픽의 말미에서 설명하는 include 방식을 이용할 것을 권장한다. 서버블록에 올 수 있는 주요 지시자는 아래와 같다.
server_name
server_name 지시어에는 (주로 도메인인) 호스트 명이 온다. server_name이 속해있는 server 블록이 해당 호스트명에 대한 설정이라는 것을 의미한다. 호스트명으로 올 수 값은 아래와 같다.
- o2.org
=o2.org
- o2.org o2.com
=o2.org, o2.com
- *.o2.org
include
include는 별도의 파일에 설정을 기록해서 설정의 그룹핑, 재활용성을 높이는 방법을 제공한다. 예를들어 아래의 설정은 sites-enabled 디렉토리에 있는 모든 파일을 자동으로 가져오게 하는 예인데, sites-enabled 디렉토리에는 가상호스트에 따라서 파일을 만들어서 위치시키면 nginx가 이 디렉토리의 파일들 모두를 가져와서 사용하게 된다. nginx.conf 파일 중 http 블록 안에 아래와 같이 기술한 후에 sites-enabled 디렉토리에 가상호스트 설정들을 파일별로 위치시키면 된다.
http { includes sites-enabled/*; }
위와 같이 상대경로를 사용할 때 sites-enabled 디렉토리는 conf 디렉토리 하위에 위치해야 한다.