가상 호스트

가상 호스트는 단일 호스트 시스템이 여러 개의 호스트 시스템을 닮을 수 있게 해 주는 구성 엔티티입니다. 처리되는 MIME의 목록을 유지보수합니다. 가상 호스트를 하나 이상의 웹 모듈에 연관시킬 수 있지만, 각 웹 모듈은 하나의 가상 호스트와만 연관시킬 수 있습니다. 가상 호스트가 동일한 물리적 시스템을 공유할지라도, 가상 호스트와 연관된 자원은 다른 가상 호스트와 연관된 자원과 데이터를 공유할 수 없습니다.

각 가상 호스트는 논리 이름과 논리 이름이 알려진 하나 이상의 DNS 별명 목록을 갖습니다. DNS 별명은 서블릿을 요청하는 데 사용되는 TCP/IP 호스트 이름 및 포트 번호( yourHostName:80)입니다. 포트 번호가 지정되지 않으면, 80이 가정됩니다.

가상 호스트 구성은 가상 호스트 항목의 포트에 와일드카드 항목을 사용합니다.

서블릿, JSP 파일 또는 관련 자원에 대한 클라이언트 요청에는 해당 자원 고유의 DNS 별명 및 URI(Uniform Resource Indicator)가 포함되어 있습니다. 서블릿, JavaServer Pages 파일 또는 관련 자원이 수신되면 올바른 가상 호스트를 찾기 위해 DNS 별명을 알려진 모든 가상 호스트 그룹의 목록과 비교하며 올바른 URI 그룹을 찾기 위해 URI를 알려진 모든 URI 그룹의 목록과 비교합니다. 가상 호스트 그룹 및 URI 그룹을 찾으면 요청이 해당 서버로 전송되어 처리되며 응답이 브라우저로 리턴됩니다. 일치하는 가상 호스트 그룹 또는 URI 그룹을 찾지 못하면 오류가 브라우저로 리턴됩니다.

가상 호스트는 특정 노드(시스템)와 연관되어 있지 않습니다. 실제 오브젝트라기 보다는, 작성했으나 시작하거나 중지할 수 없는 이유를 설명하는 구성입니다. default_host라고 하는 기본 가상 호스트는 맨 처음 애플리케이션 서버를 시작할 때 자동으로 구성됩니다. 특별히 동일한 노드(실제 시스템)에 있는 자원을 서로 구분하려고 하는 경우를 제외하고는, 기본 호스트 이외에 가상 호스트가 필요하지 않습니다.

기본 가상 호스트의 DNS 별명은 *:80*:9080(여기서, 포트 80은 HTTP 서버 포트이고 포트 9080은 기본 서버의 HTTP 전송을 위한 포트임)으로 구성됩니다. 기본 가상 호스트에는 시스템의 IP 주소, 축약형 호스트 이름 및 완전한 호스트 이름과 같은 공통적인 별명이 포함됩니다. 이러한 별명 중 하나는 자원(서블릿)에 액세스하는 경로의 첫 번째 부분을 구성합니다. 예를 들어, 별명 localhost:80은 요청 http://localhost:80/myServlet에서 사용됩니다.

로컬 로스트를 가상 호스트에 추가하면 로컬 호스트 시스템의 호스트 이름과 IP 주소가 별명 테이블에 추가됩니다. 이를 사용하여 원격 사용자가 관리 콘솔에 액세스할 수 있습니다.

관리 콘솔을 사용하여 기본 포트 이외의 다른 포트를 사용하려는 경우 DNS 별명을 추가하거나 변경할 수 있습니다. DNS 별명을 변경하는 경우 웹 서버 플러그인 구성을 재생성해야 합니다. 관리 콘솔을 사용하여 플러그인 재생성을 시작할 수 있습니다.

우수 사례 우수 사례: 다음 경우에는 추가 별명을 추가하거나 기본 별명을 변경하려 할 수 있습니다.
  • HTTP 서버 인스턴스가 80 이외의 포트에서 실행 중인 경우. 각 별명에 올바른 포트 번호를 추가하십시오. 예를 들어, yourhostyourhost:8000으로 변경하십시오.
  • SSL(Secure Sockets Layer)을 사용하는 HTTPS 요청을 작성하려는 경우. HTTPS 요청을 작성하려면 각 별명에 포트 443을 추가해야 합니다. 포트 443은 SSL 요청용 기본 포트입니다.
  • 웹 서버 인스턴스가 443 이외의 포트에서 SSL 요청을 청취 중인 경우. 이 경우에는 각 별명에 이 포트 번호(433)를 추가해야 합니다.
  • 애플리케이션 서버에 기본 포트(9080) 이외의 포트를 사용하려는 경우.
  • 목록에 없는 기타 별명을 사용하려는 경우.
bprac

자원을 요청할 때, 제품은 정의된 가상 호스트의 별명에 요청을 맵핑시키려고 시도합니다. 가상 호스트의 http://host:port/ 부분은 대소문자를 구분하지 않지만, 그 뒤에 나오는 URL은 대소문자를 구분합니다. URL의 영숫자가 모두 일치해야 합니다. 다른 포트 번호는 다른 별명으로 취급됩니다.

예를 들어, 요청 http://www.myhost.com/myservlethttp://WWW.MYHOST.COM/myservlet으로 성공적으로 맵핑되지만 http://WWW.MYHOST.COM/MYSERVLET 또는 Www.Myhost.Com/Myservlet으로는 맵핑되지 않습니다. 후자의 두 사례에서는 대소문자 불일치로 인해 맵핑에 실패합니다. 요청 http://www.myhost.com/myservlethttp://myhost/myservlet 또는 http://myhost:9876/myservlet으로 맵핑됩니다. 이러한 맵핑은 영숫자가 정확하지 않기 때문에 실패합니다.

포트별 별명에 대해 와일드 카드 항목을 사용하고 특정 포트의 유효한 모든 호스트 이름과 주소 조합이 특정한 가상 호스트에 맵핑하도록 지정할 수 있습니다.

사용자가 정의된 가상 호스트의 별명으로 맵핑할 수 없는 별명을 사용하여 자원을 요청하는 경우, 사용자는 요청을 발행하는 데 사용되는 브라우저에서 404 오류를 받게 됩니다. 메시지는 가상 호스트를 찾을 수 없음을 나타냅니다.

두 개의 연관 세트가 가상 호스트에 대해 발생합니다. 애플리케이션 배치는 가상 호스트와 애플리케이션을 연계시킵니다. 가상 호스트 정의는 HTTP 전송 및 시스템의 네트워크 주소 또는 애플리케이션 서버의 웹 서버 포트 지정과 가상 호스트를 연관시킵니다. 예를 들어, snoop 서블릿에 대한 웹 클라이언트 요청으로부터 플로우를 찾을 때 다음 조치가 발생합니다.
  1. 웹 클라이언트는 웹 주소 http://www.some_host.some_company.com:9080/snoop에서 snoop 서블릿을 요청합니다.
  2. some_host 시스템이 독립형 애플리케이션 서버인 server1에 9080 포트를 지정합니다.
  3. server1은 가상 호스트 지정을 찾아 별명 some_host.some_company.com:9080에 지정된 가상 호스트를 판별합니다.
  4. 애플리케이션 서버가 DNS 문자열에 대한 명시적 별명이 없음을 발견합니다. 그러나 포트 9080의 호스트 이름 *에 대한 와일드 카드 지정이 존재합니다. 이것이 일치입니다. 일치를 정의하는 가상 호스트는 default_host입니다.
  5. 애플리케이션 서버는 default_host에서 배치된 애플리케이션을 찾아 snoop 서블릿을 찾습니다.
  6. 애플리케이션 서버가 웹 클라이언트에 애플리케이션을 제공하며 요청자가 snoop 서블릿을 사용할 수 있습니다.
표 1. 가상 호스트의 별명. 가상 호스트의 별명은 임의의 개수만큼 가질 수 있습니다. 다음과 같이 중복되는 별명도 가질 수 있습니다.
가상 호스트 별명 포트
default_host * 9080
로컬 호스트 9080
my_machine 9080
my_machine.my_company.com 9080
로컬 호스트 80

Application Server는 웹 클라이언트 주소에 지정된 명시적 주소를 사용하여 일치를 찾습니다. 그러나 명시적 주소를 일치시키기 전에 패턴을 일치시키는 다른 별명으로 일치를 해석할 수 있습니다. 별명 목록에서 먼저 별명을 정의만 해서는 제품이 일치하는 별명을 찾을 때마다 올바른 검색 순서가 보장되지 않습니다.

서로 다른 두 개의 가상 호스트에 대해 동일한 별명을 사용할 경우 문제점이 발생할 수 있습니다. 예를 들어, default_host에 기본 애플리케이션 및 snoop 서블릿을 설치했다고 가정합니다. 또한 admin_host라는 다른 가상 호스트가 있습니다. 그러나 admin_host에는 기본 애플리케이션 또는 snoop 서블릿을 설치하지 않았습니다.

표 2. 별명이 중복되는 가상 호스트. admin_host에 대해 실수로 포트 9060 대신 포트 9080을 정의하여 두 가상 호스트에 대해 중복 별명을 정의했다고 가정합니다.
가상 호스트 별명 포트
default_host * 9080
로컬 호스트 9080
admin_host * 9060
my_machine.com 9080

웹 클라이언트 요청이 http://my_machine.com:9080/snoop에 대해 들어온다고 가정합니다.

애플리케이션 서버가 *:9080에 대해 요청을 일치시킬 경우, 애플리케이션은 default_host에서 제공됩니다. 애플리케이션 서버가 my.machine.com:9080으로 요청을 일치시킬 경우, 애플리케이션을 찾을 수 없습니다. 요청을 발행한 브라우저에서 404 오류가 발생합니다. 메시지는 가상 호스트를 찾을 수 없음을 나타냅니다.

이 문제점은 일치하는 별명을 갖는 첫 번째 가상 호스트에서 요청된 애플리케이션을 찾지 못한 결과로 발생합니다. 별명을 코드화하는 올바른 방법은 수신 요청의 별명 이름을 모든 가상 호스트 정의에서 한 가상 호스트와만 일치시키는 것입니다. URL이 두 개 이상의 가상 호스트와 일치할 수 있는 경우, 위에서 설명한 문제점이 발생할 수 있습니다.


주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=ccws_vhost
파일 이름:ccws_vhost.html