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 디렉토리 하위에 위치해야 한다. 

댓글

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

      "호스트명으로 올 수 값은 아래와 같다."
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기