가상 멀티호스팅은 역방향 프록시 서버 등의 원래 서버가 각 주소에 서로 다른 서버가 설치된 것처럼 여러 DNS 별칭에 응답할 수 있도록 하는 기능입니다. 예를 들어 다음과 같은 이름의 DNS 호스트가 있다고 가정합니다.
www
specs
phones
이 호스트 이름을 각각 같은 IP 주소, 즉 역방향 프록시의 IP 주소에 매핑할 수 있습니다. 그러면 역방향 프록시는 해당 프록시에 액세스하는 데 사용된 DNS 이름에 따라 서로 다르게 작동할 수 있습니다.
가상 멀티호스팅을 사용하면 단일 역방향 프록시 서버에 여러 개의 서로 다른 *도메인*을 호스팅할 수도 있습니다. 예:
www.domain-1.com
www.domain-2.com
www.domain-3.com
여러 로컬 호스트 이름과 여러 도메인의 조합을 모두 하나의 프록시 서버에서 사용할 수 있습니다.
www
specs
phones
www.domain-1.com
www.domain-2.com
www.domain-3.com
DNS 호스트 이름과 도메인의 이름 또는 별칭을 지정하고 해당 호스트 이름으로 전송된 요청이 전달되어야 하는 대상 URL 접두어를 지정하면 가상 멀티호스팅 기능이 작동합니다. 예를 들어 다음 두 가지 매핑이 있다고 가정합니다.
engr.domain.com -> http://int-engr.domain.com
mktg.domain.com -> http://int-mktg.domain.com
매핑이 루트 간 매핑일 필요는 없습니다. 대상 URL에 추가 URL 경로 접두어를 지정할 수 있습니다.
engr.domain.com -> http://internal.domain.com/engr
mktg.domain.com -> http://internal.domain.com/mktg
가상 도메인 매핑에도 같은 기법이 적용됩니다. 예를 들어 다음을 사용할 수 있습니다.
www.domain-1.com -> http://int-engr.domain.com
www.domain-2.com -> http://int-mktg.domain.com
그러면 시스템은 HTTP “Host:” 헤더를 찾습니다. 시스템은 이 헤더를 기준으로 일치하는 가상 멀티호스팅 매핑을 선택합니다. 일치하는 멀티호스팅 매핑이 없으면 서버는 구성 파일에 나타나는 순서대로 다른 매핑을 찾거나, 찾지 못하는 경우 매핑을 수행하지 않습니다. 일치하는 매핑을 찾지 못한 경우 일반적으로 프록시는 “프록시가 요청 수행 거부” 응답을 발급합니다.
Server Manager에 액세스하고 URL 탭을 누릅니다.
Configure Virtual Multihosting 링크를 누릅니다.
Configure Virtual Multihosting 페이지가 표시됩니다.
Source Hostname (alias) 필드에서 이 매핑이 적용될 로컬 호스트 이름(또는 DNS 별칭)을 지정합니다.
Source Domain Name 필드에서 이 매핑이 적용될 로컬 도메인 이름을 입력합니다.
여러 개의 서로 다른 DNS 도메인을 멀티호스팅하려는 경우 이외에는 일반적으로 이 이름은 자체 네트워크의 도메인 이름입니다.
호스트와 도메인 이름이 위에서 지정한 내용과 일치하는 경우 요청이 전달될 대상 URL 접두어를 Destination URL Prefix 필드에 입력합니다.
템플리트를 사용하는 경우에는 Use This Template 드롭다운 목록에서 템플리트 이름을 선택하고, 템플리트를 적용하지 않으려면 NONE의 값을 유지합니다.
OK를 누릅니다.
Restart Required를 누릅니다.
Apply Changes 페이지가 표시됩니다.
Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
원하는 모든 가상 멀티호스팅 매핑에 대해 위의 단계를 반복합니다.
Configure Virtual Multihosting 페이지 아래쪽에 모든 가상 멀티호스팅 매핑이 나타납니다. Source Hostname (alias) 및 Source Domain Name 필드가 프록시의 포트 번호와 함께 “Host:” 헤더를 찾습니다.
예를 들어 호스트 이름이 www이고 도메인이 example.com이며 포트 번호가 8080이면 다음과 같은 정규 표현식이 나타납니다.
www(|.example.com)(|:8080)
이 정규 표현식은 사용자가 입력했거나 클라이언트가 보냈을 수 있는 다음과 같은 모든 가능한 조합과 일치합니다. 일부 클라이언트 소프트웨어에서는 포트 번호가 80이 아닌 경우에도 서버가 해당 포트에서 수신했기 때문에 포트 번호가 생략될 수 있습니다.
www
www:8080
www.example.com
www.example.com:8080
역방향 프록시 매핑을 구성하려면 먼저 클라이언트 자동 구성 기능을 비활성화해야 합니다. 클라이언트 자동 구성 기능은 역방향 프록시가 아니라 정방향 프록시 작동을 위한 기능입니다.
가상 멀티호스팅 기능은 자동 역방향 매핑을 만듭니다. 가상 멀티호스팅 페이지를 사용하여 제공하는 매핑에 대해 역방향 매핑을 만들지 마십시오.
가상 매핑은 obj.conf 파일에서 virt-map 기능을 사용하여 지정됩니다.
가상 매핑은 obj.conf 구성 파일에 지정된 순서대로 일치됩니다. 정방향, 역방향, 정규 표현식 또는 클라이언트 자동 구성 매핑이 가상 매핑 전에 나타나는 경우 먼저 적용됩니다. 마찬가지로, 가상 매핑에 일치하는 매칭이 없으면 obj.conf의 가상 매핑 섹션 뒤의 다음 매핑으로 변환이 계속됩니다.
지정 순서에서 역방향 매핑은 다른 매핑보다 먼저 나타나야 합니다.
프록시 서버의 포트 번호가 변경되면 가상 멀티호스팅 매핑을 다시 만들어 새 포트 번호를 반영해야 합니다.