NGINX

가상 호스트 - server 블록

본 토픽은 현재 준비중입니다.공동공부에 참여하시면 완성 되었을 때 알려드립니다.

가상 호스트

가상 호스트는 영어로 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 디렉토리 하위에 위치해야 한다. 

  • 봤어요 0명

댓글

댓글 본문
  1. 드림보이
    2021.09.12. 시작
  2. 코딩하는기게
    Request 요청시에, 헤더부분에 도메인도 같이 적어서 보내줍니다.
    따라서 NGinx 에서는 어떤 도메인 이름인지 알 수 있습니다.
    대화보기
    • 백인철
      가상 host를 사용하기 위해서는 1개의 IP 에 여러개의 domain name을 지정해야 하는 것 같은데,
      이렇게 할 수 있는 방법이 있나요?
    • 이경호
      잘보고 갑니다~
    • 아이폰6
      server name 부분에 오탈자가 있습니다.

      "호스트명으로 올 수 값은 아래와 같다."