| Sun ONE Web Server 6.1 관리자 설명서 |
13 장
가상 서버 사용이 장에서는 Sun ONE Web Server를 사용하여 가상 서버를 설정하고 관리하는 방법에 대하여 설명합니다.
이 장의 내용:
가상 서버 개요가상 서버를 사용할 때 단일하게 설치된 서버로 회사 또는 개별 도메인 이름, IP 주소 및 일부 서버 모니터 기능을 제공할 수 있습니다. 사용자의 경우 하드웨어와 기본적인 웹 서버 유지 보수를 제공해야 하지만, 거의 자신의 전용 웹 서버를 가지고 있는 것과 같습니다.
참고
가상 서버를 사용하지 않을 경우 Class Manager의 항목을 사용하여 웹 서버 인스턴스에 대한 내용, 프로그램 및 기타 기능을 구성합니다. 웹 서버를 설치한 경우 인스턴스용 기본 가상 서버가 만들어집니다. 가상 서버 사용자 인터페이스를 사용하여 이 기본 가상 서버의 내용과 서비스를 관리합니다.
가상 서버를 설정하려면 다음 사항을 설정해야 합니다.
가상 서버용 설정은 server.xml 파일에 저장되어 있으며, 이 파일은 server_root/server_ID/config 디렉토리에 있습니다. 가상 서버를 사용하기 위하여 이 파일을 편집할 필요는 없으나, 이 파일에 대하여 더 자세히 알고 싶은 경우에는 Sun ONE Web Server 6.1 Administrator's Configuration File Reference를 참조하십시오.
이 부분에서는 다음 항목에 대해 설명합니다.
복수 서버 인스턴스
Sun ONE Web Server의 지난 릴리스에서는 가상 서버의 고유한 구성 정보에 유연성이 없었습니다. 사용자는 서버가 별도의 구성 정보를 갖도록 하는 직접적 수단을 확보하고자 별도의 서버 인스턴스를 만드는 경우가 많았습니다. Sun ONE Web Server 6.0 버전은 각 가상 서버 클래스에 대해 별도의 구성 정보를 도입했습니다. 복수 서버 인스턴스가 여전히 지원되지만 여러 서버가 별도의 구성 정보를 갖도록 하는 것이 목적이라면 가상 서버가 더 나은 선택입니다.
Virtual Server Class
가상 서버는 클래스로 그룹화됩니다. 클래스를 사용하여 동시에 유사한 가상 서버를 구성할 수 있으므로 각각을 별도로 구성할 필요가 없습니다. 한 클래스의 모든 가상 서버가 동일한 기본 구성 정보를 공유한다고 해도 변수를 설정하고 가상 서버별로 구성을 변경할 수 있습니다. 가상 서버가 구성 정보를 공유하지 않게 하려면 가상 서버 클래스별로 단일한 가상 서버를 만들 수 있습니다. 그러나, 가상 서버가 유사한 등록정보를 공유하면 클래스로 그룹화하여 함께 구성할 수 있습니다.
예를 들어, 인터넷 서비스 제공자(ISP)를 대상으로 하고 고객에게마다 다른 가격으로 다른 호스팅 수준을 제공하려 한다면 고객에게 여러 가지 가상 서버 클래스를 설정할 수 있습니다. 하나의 가상 서버 클래스에 대해 Java 서브릿 및 JSP를 사용함으로 설정하고 그보다 저렴한 가상 서버 클래스에 대해서는 Java 서브릿 및 JSP를 사용 안함으로 설정할 수 있습니다.
가상 서버 클래스에 이름을 지정하고 문서 루트를 설정하여 가상 서버 클래스를 만들 수 있습니다. 여기에서 클래스에 속하는 모든 가상 서버는 기본적으로 문서 루트를 갖습니다. 클래스 내의 각 가상 서버가 클래스의 문서 루트 내부에 별도의 문서 루트를 갖도록 $id 변수를 사용할 수 있습니다. 더 자세한 내용은 "문서 루트"를 참조하십시오.
가상 서버의 클래스를 만든 후 해당 클래스와 서비스를 연결합니다. 가상 서버 클래스에 대해 다음 서비스 유형을 사용 설정 또는 구성할 수 있습니다.
- 프로그램, 프로그램으로 서버 확장 참조
- 내용 관리, 내용 관리 참조
- 구성 스타일, 구성 스타일 적용 참조
obj.conf 파일
클래스의 모든 가상 서버는 가상 서버 클래스에 대한 정보를 저장하는 obj.conf 파일을 공유합니다. 해당 정보 중 일부는 변수로 저장되어 개별 가상 서버가 신속하게 특정 변수 값을 교체할 수 있습니다.
obj.conf 및 변수에 대한 더 자세한 내용은 NSAPI Programmer’s Guide를 참조하십시오. 사용자 인터페이스의 변수 사용에 대한 더 자세한 내용은 "변수 사용"를 참조하십시오.
클래스의 가상 서버
클래스에 속하는 가상 서버는 해당 클래스의 구성원이라고 합니다. 일부 가상 서버 설정은 클래스의 모든 가상 서버에 대해 구성되며 일부는 개별적으로 구성됩니다. 이러한 설정은 Class Manager의 Virtual Servers 탭에서 구성됩니다. 더 자세한 내용은 제 14장, "가상 서버 만들기 및 구성"를 참조하십시오.
기본 클래스
Sun ONE Web Server를 설치할 경우 설치자는 자동으로 defaultclass라고 하는 단일 클래스를 만듭니다. 여기에는 기본적으로 서버 인스턴스에 대해 하나의 가상 서버 구성원이 들어있습니다. 기본 클래스에 추가 가상 서버를 추가할 수 있지만 클래스에서 기본 가상 서버를 삭제할 수는 없습니다. 또한 기본 클래스를 삭제할 수 없습니다.
청취 소켓
서버와 클라이언트 사이의 연결은 청취 소켓에서 이루어진다. 만들어진 각 청취 소켓에는 IP 주소, 포트 번호, 서버 이름 및 기본 가상 서버가 있습니다. 청취 소켓이 시스템에 주어진 포트의 모든 구성된 IP 주소에서 청취하도록 하려면 IP 주소에 대해 0.0.0.0, any, ANY 또는 INADDR_ANY를 사용합니다.
Sun ONE Web Server를 설치하는 경우 청취 소켓 한 개(ls1)가 자동으로 만들어집니다. 이 청취 소켓은 IP 주소 0.0.0.0과 설치 도중 HTTP 서버 포트 번호로 지정한 포트 번호(기본 값은 80)를 사용합니다. 기본 청취 소켓은 삭제할 수 없습니다. 가상 서버를 사용하지 않으면 이 한 개 청취 소켓으로 충분합니다. 그러나 가상 서버를 사용할 경우에는 가상 서버에 대해 여러 청취 소켓을 만들 수 있습니다.
청취 소켓은 IP 주소와 포트 번호의 조합이므로 IP 주소는 같고 포트 번호는 다르거나 IP 주소는 다르고 포트 번호는 같은 여러 청취 소켓을 가질 수 있습니다. 예를 들어, 1.1.1.1:81 및 1.1.1.1:82를 가질 경우 시스템이 이들 주소에 모두 응답하도록 구성되어 있기만 하면 추가적으로 1.1.1.1:81과 1.2.3.4:81을 가질 수 있습니다.
또한, 청취 소켓에서 여러 개의 승인자 스레드(때로는 승인 스레드라고도 함)을 지정합니다. 승인자 스레드는 연결을 대기하는 스레드입니다. 이 스레드가 연결을 승인하고 대기열에 배치되면 이후에 작업자 스레드에 의해 선택됩니다. 이상적으로는 새로운 요청이 들어올 때 항상 사용 가능하도록 승인 스레드를 충분하고 갖고 있으면 좋지만 시스템에 지나치게 부담이 되지 않도록 조정하는 것이 좋습니다. 기본값은 1. 시스템의 CPU 당 한 개 승인 스레드가 있는 것이 바람적한 원칙입니다. 성능 저하 현상이 있으면 이 값을 조정할 수 있습니다.
가상 서버
가상 서버를 만들려면 먼저 어떤 클래스에 속했는지 결정해야 합니다. 다음으로 어떤 종류의 가상 서버를 원하는지 결정해야 합니다. 가상 서버를 만들려면 가상 서버 ID 하나, 하나 이상의 URL 호스트만 지정하면 됩니다.
이 부분에서는 다음 항목에 대해 설명합니다.
가상 서버의 유형
Sun ONE Web Server 릴리스 버전 6.0 이전에는 두 가지 종류의 가상 서버, 즉 하드웨어와 소프트웨어가 있었습니다. 하드웨어 가상 서버에는 고유한 IP 주소가 연결되어 있었습니다. 소프트웨어 가상 서버에는 고유한 IP 주소가 없는 대신 고유한 URL 호스트가 있었습니다.
Sun ONE Web Server 6.0 및 Sun ONE Web Server 6.1에서는 이러한 개념이 더 이상 해당되지 않습니다. 모든 가상 서버에는 URL 호스트가 지정되어 있습니다. 그러나, 가상 서버에 청취 소켓을 기준으로 하는 IP 주소와 연결되어 있을 수도 있습니다.
새로운 요청이 들어오면 서버는 IP 주소 또는 Host 헤더의 값을 기준으로 어떤 가상 서버를 전송할지 결정합니다. 먼저 IP 주소를 검토합니다. 더 자세한 내용은 "요청 처리용 가상 서버 선택"를 참조하십시오.
IP 주소 기반 가상 서버
단일한 컴퓨터에서 여러 IP 주소를 갖기 위해서는 운영 체제를 통해 매핑하거나 추가 카드를 제공해야 합니다. 운영 체제를 통해 여러 IP 주소를 설정하려면 네트워크 제어판(Windows) 또는 ifconfig 유틸리티(UNIX/Linux)를 사용합니다. 참고로, ifconfig를 사용하는 방법은 플랫폼마다 다릅니다. 더 자세한 내용은 운영 체제 설명서를 참조하십시오.
일반적으로 특정한 IP 주소에서 청취하는 청취 소켓을 만들어 IP 주소 기반 가상 서버를 만듭니다. 청취 소켓의 기본 가상 서버는 IP 주소 기반 가상 서버입니다. 가상 서버 구현 방법에 대한 더 자세한 내용은 "가상 서버 구현"를 참조하십시오.
URL 호스트 기반 가상 서버
가상 서버에 고유한 URL을 부여하여 URL 호스트 기반 가상 서버를 설정할 수 있습니다. 호스트 요청 헤더의 내용이 서버에게 올바른 가상 서버를 지시합니다.
예를 들어, 고객, aaa, bbb, ccc} 에 대해 각 고객이 개별 도메인 이름을 갖도록 가상 서버를 설정하려면 먼저 각 고객의 URL, www.aaa.com, www.bbb.com, www.ccc.com을 인지하도록 DNS를 구성하고 사용하는 청취 소켓의 IP 주소로 확인합니다. 그 다음 각 가상 서버의 URL 호스트를 올바른 설정(예를 들어, www.aaa.com)으로 설정합니다.
URL 호스트 기반 가상 서버는 호스트 요청 헤더를 사용하여 사용자에게 올바른 페이지를 지시하기 때문에 모든 클라이언트 소프트웨어가 그러한 가상 서버와 더불어 작동하는 것은 아닙니다. HTTP Host 헤더를 지원하지 않는 클라이언트 소프트웨어는 작동하지 않습니다. 이러한 클라이언트는 청취 소켓에 대해 기본 가상 서버를 받습니다.
기본 가상 서버
URL 호스트 기반 가상 서버가 호스트 요청 헤더를 사용하여 선택됩니다. 최종 사용자의 브라우저가 Host 헤더를 전송하지 않거나 서버가 지정된 Host 헤더를 찾을 수 없으면 기본 가상 서버가 요청을 서비스합니다.
기본 가상 서버는 청취 소켓에 의해 설정됩니다. 청취 소켓을 만들 때 기본 가상 서버를 지정합니다. 항상 기본 가상 서버를 변경할 수 있습니다.
요청 처리용 가상 서버 선택
서버가 요청을 처리하려면 청취 소켓을 통하여 요청을 접수한 후 요청을 올바른 가상 서버로 보내야 합니다.
그 다음 가상 서버가 다음과 같이 선택됩니다.
가상 서버가 SSL 청취 소켓에 대해 구성되었고 해당 URL 호스트가 서버 시작시 인증서의 개체 패턴에 대해 확인되었으나 일치하지 않을 경우 경고가 발행되고 오류 로그가 작성됩니다.
가상 서버가 결정된 후 서버는 가상 서버가 속한 가상 서버 클래스에 대해 obj.conf 파일을 실행합니다. 서버가 obj.conf에서 실행될 명령을 결정하는 방법에 대한 더 자세한 내용은 Sun ONE Web Server 6.1 NSAPI Programmer’s Guide를 참조하십시오.
문서 루트
기본 문서 디렉토리 또는 문서 루트는 원격 클라이언트가 사용할 수 있게 되는 모든 가상 서버 파일을 담은 중앙 디렉토리입니다.
문서 루트 디렉토리는 가상 서버의 파일에 대한 액세스를 제한하는 손쉬운 방법을 제공합니다. 또한 URL에 지정된 경로가 기본 문서 디렉토리에 대해 상대적이기 때문에 URL을 변경하지 않고 새로운 디렉토리(아마도 다른 디스크에 있는)로 문서를 이동하는 일 또한 쉬워집니다.
예를 들어, 문서 디렉토리가 C:\sun\servers\docs일 경우 http://www.sun.com/products/info.html과 같은 요청이 서버에게 C:\sun\servers\docs\products\info.html의 파일을 찾으라고 지시합니다. 문서 루트를 변경하면(즉, 모든 파일 및 하위 디렉토리를 이동하면) 모든 URL을 새로운 디렉토리에 매핑하거나 클라이언트에게 새 디렉토리를 찾으라고 지시하는 대신 가상 서버가 사용하는 문서 루트를 변경하기만 하면 됩니다.
Sun ONE Web Server를 설치한 경우 웹 서버 인스턴스에 대해 문서 루트를 지정합니다. 그러면 그것이 기본 클래스에 대한 문서 루트가 됩니다. 클래스 수준에서 해당 디렉토리를 변경하거나 개별 가상 서버 수준에서 그것을 무시할 수 있습니다.
클래스를 추가할 때도 문서 디렉토리를 지정할 필요가 없습니다. 해당 디렉토리를 절대 경로입니다. 그러나 단지 절대 경로만 입력하면 클래스에 속하는 모든 갓아 서버의 문서 루트의 기본값이 동일한 디렉토리가 됩니다. 문서 루트 절대 경로의 끝에 변수 $id를 포함시키면 모든 가상 서버가 기본적으로 class_doc_root/virtual_server_ID의 기본 문서 루트를 갖습니다 예를 들어, 클래스의 문서 디렉토리는 /sun/servers/docs/$id이고 클래스에 속한 가상 서버 vs1의 주 문서 디렉토리는 /sun/servers/docs/vs1입니다.
더 자세한 내용은 "변수 사용"를 참조하십시오.
개별 가상 서버 수준에서 클래스의 기본 문서 디렉토리를 무시할 수도 있습니다.
Log File
새로운 가상 서버를 만들면 기본적으로 로그 파일은 서버 인스턴스와 동일한 로그 파일입니다. 대부분의 경우 각 개별 가상 서버가 자체 로그 파일을 가지려 합니다. 이러한 설정을 하려면 각 가상 서버의 로그 경로를 변경할 수 있습니다.
더 자세한 내용은 "가상 서버 로그 설정 구성" 329페이지 를 참조하십시오.
이전 릴리스에서 가상 서버 이전
iPlanet Web Server 4.1 버전의 가상 서버를 사용한다면 이전 도구를 사용하여 현재 릴리스로 이전할 수 있습니다. 더 자세한 내용은 Installation and Migration Guide를 참조하십시오.
가상 서버와 함께 Sun ONE Web Server 기능 사용Sun ONE Web Server에는 SSL 및 액세스 제어와 같이 가상 서버와 함께 사용할 수 있는 많은 기능이 있습니다. 이러한 기능 중 대다수가 모든 서버, 서버 인스턴스, 가상 서버 클래스 또는 개별 가상 서버에 대한 구성에 관한 것입니다. 다음 부분에서 기능에 대해 설명하고 더 자세한 내용을 찾을 수 있는 위치 정보를 제공합니다.
이 부분에서는 다음 항목에 대해 설명합니다.
가상 서버와 함께 SSL 사용
가상 서버에서 SSL을 사용하려면 대부분 IP 주소 기반 가상 서버를 사용합니다. 통상적인 포트는 443입니다. Sun ONE Web Server는 요청을 전송할 URL 호스트를 결정하기 전에 요청을 읽어야 하기 때문에 URL 호스트 기반 가상 서버의 SSL을 사용하기가 어렵습니다 서버가 요청을 읽으면 보안 정보가 교환되는 초기 핸드셰이크가 이미 발생합니다.
유일한 예외는 URL 호스트 기반 가상 서버가 모두 동일한 서버 인증서를 비롯한 동일한 SSL 구성을 가지며 와일드카드 인증서를 사용하는 경우입니다. 더 자세한 내용은 제 6장, "인증서 및 키 사용"를 참조하십시오.
가상 서버와 함께 SSL을 구현하는 한 가지 방법은 두 개의 청취 소켓을 갖는 것입니다. 하나는 SSL을 사용하여 포트 443에서 청취하는 것이고 하나는 SSL을 사용하지 않는 것입니다. 사용자는 일반적으로 SSL을 사용하지 않는 청취 소켓을 통해 가상 서버에 액세스합니다. 보안 트랜잭션이 발생해야 할 경우 사용자는 웹 페이지에서 버튼을 한 번 눌러 보안 트랜잭션을 시작할 수 있습니다. 그 후에 요청이 보안 청취 소켓을 통과합니다.
SSL 트랜잭션은 SSL을 사용하지 않는 트랜잭션보다 훨씬 느리기 때문에 이 디자인은 SSL 트랜잭션을 필요한 경우로만 제한합니다. 보다 빠른, SSL을 사용하지 않는 연결은 나머지 시간에 사용됩니다.
Sun ONE Web Server 및 가상 서버로 보안을 설정 및 사용하는 더 자세한 내용은 제 6장, "인증서 및 키 사용"를 참조하십시오. 가상 서버와 함께 예제 SSL 구성의 그림은 "예제 2 보안 서버"를 참조하십시오.
가상 서버와 함께 액세스 제어 사용
가상 서버와 더불어 가상 서버 하나당 액세스 제어를 설정할 수 있습니다. 각 가상 서버가 LDAP 데이터베이스를 사용하는 사용자 및 그룹 인증을 가질 수 있도록 구성할 수도 있습니다. 더 자세한 내용은 "가상 서버용 액세스 제어" 217페이지 .를 참조하십시오.
가상 서버와 더불어 CGI 사용
가상 서버에서 CGI를 사용할 수 있습니다. 액세스 및 보안상의 이유로 구성할 수 있는 설정이 많이 있습니다.
CGI 설정 및 사용에 대한 더 자세한 내용은 "CGI 프로그램 설치" 345페이지 를 참조하십시오.
가상 서버와 함께 구성 스타일 사용
구성 스타일을 사용하면 다양한 가상 서버가 유지보수하는 특정한 파일 또는 디렉토리에 일련의 옵션을 쉽게 적용할 수 있습니다. 구성 스타일 사용에 대한 더 자세한 내용은 구성 스타일 적용를 참조하십시오.
가상 서버 사용자 인터페이스 사용가상 서버를 만들고 편집하려면 사용자 인터페이스 또는 명령줄 유틸리티를 사용할 수 있습니다.
가상 서버 관리용 사용자 인터페이스는 다음 세 부분으로 이루어집니다.
또한, 개별 가상 서버를 가진 최종 사용자의 사용자 인터페이스가 사용 가능합니다. 더 자세한 내용은 "사용자가 개별 가상 서버를 모니터하도록 허용"를 참조하십시오.
이 부분에서는 다음 항목에 대해 설명합니다.
Class Manager
Class Manager에 액세스하려면 다음 단계를 따르십시오.
서버의 트리 보기에서 클래스 이름을 누르거나 Server Manager의 오른쪽 상단 모서리의 Class Manager 버튼 링크를 누릅니다.
Virtual Server Manager
Server Manager에 액세스하려면 다음과 같이 합니다.
서버의 트리 보기에서 가상 서버 이름을 누를 수도 있습니다.
명령줄 유틸리티, HttpServerAdmin을 사용하여 사용자 인터페이스을 사용하여 할 수 있는 동일한 가상 서버 작업을 수행할 수 있습니다. 명령줄 유틸리티 HttpServerAdmin에 대한 더 자세한 내용은 "HttpServerAdmin (가상 서버 관리)" 429페이지 를 참조하십시오.
변수 사용
각각의 값을 개별적으로 정의할 필요 없이 변수를 사용하여 클래스에 대해 가상 서버 특정 값을 부여할 수 있습니다. 변수는 obj.conf 파일에서 정의됩니다. 자체적으로 변수를 정의하지만 사용자 인터페이스는 그것을 인지하지 않습니다. 사용자 인터페이스에서 가장 유용한 변수는 $id입니다. 이것은 가상 서버의 ID를 나타냅니다. 이 변수를 입력할 때마다 서버가 개별 가상 서버 ID 값을 교체합니다.
때대로 마주치게 되는 기타 변수로는 $accesslog(각 가상 서버의 액세스 로그에 대한 경로)와 $docroot(각 가상 서버의 문서 루트에 대한 경로)가 있으나 $id가 필드에 입력해야 하는 유일한 변수입니다.
변수에 대한 더 자세한 내용은 Sun ONE Web Server 6.1 NSAPI Programmer's Guide를 참조하십시오.
동적 재구성
동적 재구성을 사용하여 변경 사항을 적용하기 위해 웹 서버를 중지하고 재시작할 필요 없이 라이브 웹 서버에 구성 변경을 할 수 있습니다. 서버를 재시작하지 않고 server.xml과 연결된 파일의 모든 설정과 속성을 동적으로 변경할 수 있습니다. 따라서 가상 서버 사용자 인터페이스 내부에서 변경한 모든 사항이 서버를 재시작하지 않고도 적용될 수 있습니다. 재구성 스크립트 또는 사용자 인터페이스를 사용하여 변경 후 서버를 동적으로 재구성할 수 있습니다.
UNIX 플랫폼에서 동적 재구성 스크립트는 각 인스턴스의 디렉토리에 있는 'reconfig'라는 셸 스크립트입니다. 이 스크립트에는 명령줄 인수가 없습니다. 서버 인스턴스 디렉토리에서 'reconfig'를 입력하기만 하면 재구성 스크립트를 실행할 수 있습니다.
Windows에서 동적 재구성 스크립트는 각 인스턴스의 디렉토리에 있는 'reconfig.bat라는 배치 파일입니다. 명령줄 인수는 없습니다. 서버 인스턴스의 디렉토리에서 'reconfig' 또는 'reconfig.bat'를 입력하기만 하면 재구성 스크립트를 실행할 수 있습니다.
이 스크립트는 실행되면 사용자 인터페이스와 유사하게 서버의 동적 재굿어을 시작하며 재구성과 관련된 서버 메시지를 표시합니다.
동적 재구성 화면에 액세스하려면 Server Manager, Class Manager 및 Virtual Server Manager 페이지의 오른쪽 상단 모서리에 있는 Apply 링크를 누른 다음 Apply Changes 페이지의 Load Configuration Files 버튼을 누릅니다. 새로운 구성을 설치할 때 오류가 발생하면 이전 구성이 복원됩니다.
가상 서버 설정가상 서버를 설정하려면 다음 단계를 따르십시오.
청취 소켓을 만들 때는 기본 가상 서버 필드에 기존 가상 서버를 입력해야 합니다. 서버를 설치할 때 만든 가상 서버를 사용한 다음 원할 경우 추가 가상 서버를 만든 후 다시 돌아가서 해당 가상 서버를 변경할 수 있습니다.
청취 소켓 만들기
청취 소켓을 만들려면 다음 단계를 따르십시오.
- Server Manager에서 Preferences 탭을 누릅니다.
- Add Listen Socket을 누릅니다.
- 필드에 값을 입력합니다.
청취 소켓은 포트 번호 및 IP 주소의 고유한 조합이어야 합니다. IPV4 또는 IPV6 주소를 사용할 수 있습니다. IP 주소 기반 가상 서버에 대해 청취 소켓을 만들려면 IP 주소는 0.0.0.0, ANY, any 또는 INADDR_ANY여야 합니다. 해당 포트의 모든 IP 주소에서 청취한다는 의미입니다.
이 청취 소켓에 대해 보안(SSL)을 사용함으로 설정할 수도 있습니다.
Server Name 필드는 서버가 클라이언트에 전송하는 URL의 호스트 이름을 지정합니다. 이에 따라 서버가 자동으로 생성하는 URL이 달라지지만, 서버에 저장된 디렉토리 및 파일용 URL에는 영향을 미치지 않습니다. 서버에서 별칭을 사용하는 경우 이 이름은 별칭이어야 합니다.
- OK를 누릅니다.
가상 서버 클래스 만들기
가상 서버 클래스를 만들려면 다음 단계를 따르십시오.
가상 서버의 클래스를 만들었으면 클래스와 관련된 서비스를 선택합니다. 더 자세한 내용은 내용 관리를 참조하십시오.
가상 서버 편집 및 삭제
가상 서버 클래스의 설정을 편집하려면 다음 단계를 따르십시오.
- Server Manager에서 Virtual Server Class 탭을 누릅니다.
- Edit Classes를 누릅니다.
- 원하는 클래스 옆에 있는 드롭다운 목록에서 Edit 또는 Delete를 선택합니다.
참고로 기본 클래스는 삭제할 수 없습니다.
- Document Root 필드를 사용하여 클래스의 기본 문서 루트에 대한 절대 경로로 변경합니다.
이 클래스의 가상 서버의 문서 루트는 기본적으로 이 디렉토리 내에서 만들어집니다.
- 이 가상 서버 클래스가 허용 언어 헤더 파싱을 사용하게 하려면 Accept Language 필드에 On을 입력합니다.
기본값은 Off입니다.
- 클래스와 연결된 CGI 기본값을 변경하려면 Advanced를 누릅니다.
CGI 기본값이 있는 창이 나타납니다. 필드를 편집하고 OK를 눌러 Edit a Class 창으로 돌아갑니다. Reset 버튼이 변경 사항을 복원합니다.
- OK를 누릅니다. 클래스가 변경되거나 삭제됩니다.
가상 서버 클래스와 연결된 서비스 지정
가상 서버의 클래스를 다른 클래스와 구별하는 일부 특징은 해당 가상 서버 클래스에 대해 사용함으로 설정된 서비스입니다. 예를 들어, 하나의 가상 서버 클래스는 다른 클래스와 달리 CGI를 사용할 수 있습니다. 서비스 설정에 대한 더 자세한 내용은 내용 관리를 참조하십시오.
가상 서버 만들기
가상 서버 클래스를 설정하면 가상 서버를 만들 수 있습니다. 가상 서버가 특정한 가상 서버 클래스의 구성원이면 Class Manager에서 가상 서버를 만듭니다.
더 자세한 내용은 "가상 서버 만들기" 325페이지 를 참조하십시오.
가상 서버와 연결된 설정 지정
가상 서버 수준에서 일부 클래스 설정을 무시하고 추가 설정을 구성할 수도 있습니다. Class Manager에서 이러한 설정을 구성합니다.
더 자세한 내용은 가상 서버 만들기를 참조하십시오.
사용자가 개별 가상 서버를 모니터하도록 허용사용자가 자신의 가상 서버 설정을 확인하고 자신의 액세스 및 오류 로그를 보도록 하는, 개별 가상 서버 관리자를 위한 특별한 사용자 인터페이스가 있습니다. 예를 들어, 3개의 다른 부서에 대해 3개의 다른 가상 서버가 있는 인트라넷이 있으면 각 부서는 각 부서의 설정과 로그 파일을 개별적으로 불 수 있습니다.
보안상의 이유로 이 관리 사용자 인터페이스는 관리 서버 포트 또는 웹 서버 인스턴스 포트와 별도의 포트에 있습니다.
이 사용자 인터페이스는 관리 서버 내부의 가상 서버에서 실행됩니다. 이 가상 서버는 기본적으로 설정되며 useradmin이라고 합니다. 사람들이 관리 서버 포트에 액세스하지 않고도 가상 서버 관리 사용자 인터페이스에 액세스할 수 있도록 관리 서버가 실행되는 청취 소켓과 별도로 관리 서버의 청취 소켓을 설정해야 합니다.
다음 그림, 은 개별 가상 서버의 관리자가 자신의 가상 서버에 대한 정보에 액세스하기 위해 useradmin 가상 서버에 액세스하는 모습을 보여줍니다.
가상 서버를 켜고 Administration Server의 /config/server.xml 파일의 특정한 설정을 편집하면 사용자는 다음 URL을 통해 서버를 관리할 수 있습니다
server_name:port/user-app/server_instance/virtual_server_ID
예:
sun:9999/user-app/sun/vs2
서버 인스턴스는 서버 인스턴스 이름의 https 부분을 포함하지 않습니다.
가상 서버 ID를 결정하려면 서버 인스턴스의 server.xml 파일을 확인합니다.
다음 그림은 최종 사용자가 보는 사용자 인터페이스입니다.
Sun ONE Web Server 6.1을 설치한 후 server_root/https-admserv/config/server.xml 파일이 다음을 만드는 특정한 주석이 달린 항목을 포함한다는 것을 확인할 수 있습니다.
useradmin을 설정하려면 이러한 항목에서 주석을 제거하기만 하면 됩니다.
서버가 이 기능을 사용하도록 구성하려면 다음 단계를 따르십시오.
- 관리 서버가 사용하는 포트와 별도의 포트를 실행하는 새로운 청취 소켓을 만듭니다.
예를 들어, 관리 서버가 포트 8888에서 실행되면 이 새로운 청취 소켓은 다른 포트 번호를 가져야 합니다. 다른 청취 소켓을 사용하면 관리 서버를 보호할 수 있습니다.
보안상의 이유로 사용자 인터페이스를 통해 이 청취 소켓을 추가할 수 없습니다. 대신, 관리 서버의 server.xml 파일에서 추가할 수 있습니다.
- server_root/https-admserv/config/server.xml에 있는 관리 서버의 server.xml 파일을 엽니다.
- LS, VSCLASS 및 VS 요소의 기본값이 들어있는 주석 달린 행에서 주석을 제거합니다. 예:
<!--
<LS id="ls2" port="9999" servername="plaza" defaultvs="useradmin"/>
-->
<!--
<VSCLASS id="userclass" objectfile="userclass.obj.conf">
<VS id="useradmin" connections="ls2" mime="mime1" aclids="acl1" urlhosts="plaza">
<PROPERTY name="docroot" value="/export1/wsinst/docs"/>
<USERDB id="default"/>
<WEBAPP uri="/user-app" path="/export1/wsinst/bin/https/webapps/user-app"/>
</VS>
</VSCLASS>
-->
그러면 보안상의 이유로 별도의 포트에서 만들어진 useradmin이 사용함으로 설정됩니다.
- 변경 사항을 server.xml에 저장합니다.
- Administration Server를 재시작하여 변경 사항을 적용합니다.
- 모든 서버 인스턴스의 모든 가상 서버의 대하여 이제 다음 URL을 사용하여 관리 URL에 액세스할 수 있어야 합니다.
server_name:port/user-app/server_instance/virtual_server_ID
예:
plaza:9999/user-app/plaza/https-plaza
액세스 제어
권한 없는 사용자로부터 가상 서버를 보호하려면 ACL을 설정할 수 있습니다. 각 가상 서버의 URL은 고유하기 때문에 올바른 관리자만이 가상 서버의 설정에 액세스할 수 있도록 액세스를 설정할 수 있습니다.
더 자세한 내용은 제 9장, "서버 액세스 제어"를 참조하십시오.
로그 파일
각 가상 서버에는 자체 로그 파일이 있을 수 있습니다. 기본적으로 모든 가상 서버는 서버 인스턴스의 로그 파일을 공유합니다. 사용자가 로그 파일을 볼 수 있도록 할 경우 대부분의 경우 각 가상 서버가 자체 액세스 및 오류 로그를 갖도록 로그 파일 설정을 변경해야 합니다.
더 자세한 내용은 "가상 서버 로그 설정 구성" 329페이지 를 참조하십시오.
가상 서버 구현Sun ONE Web Server의 가상 서버 아키텍처는 매우 유연합니다. 서버 인스턴스에는 보안 및 비보안을 모두 포함하는 많은 청취 소멧이 있을 수 있습니다. IP 주소 기반과 URL 호스트 기반 가상 서버를 모두 가질 수 있습니다.
또한, 유사한 설정을 가진 가상 서버를 여러 개의 가상 서버 클래스로 그룹화할 수 있습니다. 가상 서버 클래스의 모든 가상 서버는 obj.conf의 동일한 요청 처리 명령을 공유합니다.
모든 가상 서버는 자체 ACL 목록, 자체 mime.types 파일, 자체 Java Web Applications 세트를 가질 수 있습니다(그러나 반드시 그렇지는 않습니다).
이 디자인은 다양한 응용 프로그램에 대해 서버를 구성하는 최대한의 유연성을 제공합니다. 다음 예는 Sun ONE Web Server에 대해 사용 가능한 구성의 일부에 대해 설명합니다.
예1: 기본 구성
Sun ONE Web Server를 새로 설치한 후에는 하나의 서버 인스턴스를 갖게 됩니다. 이 서버 인스턴스는 컴퓨터가 구성된 IP 주소의 포트 80(또는 설치시 선택한 것)에서 청취하는 단 하나의 청취 소켓을 갖습니다.
로컬 네트워크의 일부 메커니즘은 컴퓨터가 구성된 각 주소에 대하여 이름 대 ㅈ소 매핑을 설정합니다. 다음 예에서, 컴퓨터에는 두 개의 네트워크 인터페이스, 즉 주소 127.0.0.1의 루프백 인터페이스(네트워크 카드가 없이도 존재하는 인터페이스)와 주소 10.0.0.1의 이더넷 인터페이스가 있습니다.
이름 example.com은 DNS를 통해 10.0.0.1에 매핑됩니다. 청취 소켓은 시스템이 구성되는 주소의 포트 80에서 청취하도록 구성됩니다("ANY:80" 또는 "0.0.0.0:80").
이 구성에서 다음에 대한 연결이 서버에 도달하고 가상 서버 VS1에 의해 서비스됩니다.
전통적인 웹 서버 사용을 위해서는 이 구성을 사용합니다. 추가 가상 서버나 청취 소켓을 추가할 필요가 없습니다. 설정을 defaultclass(VS1은 defaultclass의 구성원임) 및 VS1 자체로 변경하여 서버의 설정을 구성합니다.
예제 2 보안 서버
기본 구성에서 SSL을 사용하려면 청취 소켓을 보안 모드로 변경하기만 하면 됩니다. 이것은 이전 Sun ONE Web Server. 버전에서 보안을 설정하는 방법과 유사합니다.
ANY:443으로 구성된 새 보안 청취 소켓을 추가하고 VS1을 새 청취 소켓으로 연결할 수도 있습니다. 이제 가상 서버는 SSL을 사용하는 청취 소켓과 사용하지 않는 청취 소켓을 갖게 됩니다. 이제 서버는 SSL을 포함하거나 포함하지 않은 채 동일한 내용을 서비스합니다. 즉, http://example.com/ 및 https://example.com/이 동일한 내용을 제공하게 됩니다.
참고로 SSL 매개변수는 청취 소켓에 연결되어 있습니다. 따라서 특정한 청취 소켓으로 구성된 모든 가상 서버에 대해 한 세트의 SSL 매개변수만 있을수 있습니다.
예제 3 인트라넷 호스트
보다 복잡한 Sun ONE Web Server 구성은 서버가 인트라넷 구현을 위해 몇 개 가상 서버를 호스트하는 구성입니다. 예를 들어, 3개의 내부 사이트가 있고 해당 사이트에서 직원들은 사용자의 전화 번호를 보고 캠퍼스 지도를 보고 Information Services 부서에 대한 요청 상태를 추적할 수 있습니다. 이전에(이 예에서) 이들 사이트는 이름 phone.example.com, maps.example.com 및 is.example.com이 매핑된 3개의 다른 컴퓨터에서 호스트되었습니다.
하드웨어 및 관리 오버헤드를 최소화하기 위해 컴퓨터 example.com에 있는 한 개 웹 서버로 3개 사이트 모두를 통합하려 합니다. 이 작업을 두 가지 방법으로 할 수 있습니다. 즉, URL 호스트 기반 가상 서버를 사용하거나 별도의 청취 소켓을 사용하는 것입니다. 두 가지 방법 모두 뚜렷한 장단점이 있습니다.
URL 호스트 기반 가상 서버가 설정하기 용이하지만 다음과 같은 단점이 있습니다.
- 이 구성의 SSL 지원을 위해서는 와일드카드 인증서를 사용하는 비표준 설정이 필요합니다. 더 자세한 내용은 제 4장, "웹 컨테이너 및 웹 응용 프로그램용 J2EE 기반 보안"를 참조하십시오.
- URL 호스트 기반 가상 서버는 기존 HTTP 클라이언트와 함께 작동하지 않습니다.
주소당 한 개 청취 소켓을 가지는 IP 주소 기반 구성도 설정할 수 있습니다.
IP 주소 기반 가상 서버의 장점은 다음과 같습니다.
다음과 같은 단점이 있습니다.
두 가지 구성을 위해서는 3개 이름에 대한 이름 대 주소 매핑 설정이 필요합니다. IP 주소 기반 구성에서는 각 이름이 다른 주소에 매핑됩니다. 호스트 컴퓨터가 이러한 주소의 연결을 수신하도록 설정되어야 합니다. URL 호스트 기반 구성에서 모든 이름은 컴퓨터가 원래 가졌던 동일한 주소에 매핑될 수 있습니다.
여러 청취 소켓으로 구성하면 서버가 요청이 들어오는 주소를 발견할 필요가 없으므로 최소한의 성능 이득을 제공합니다. 그러나 여러 청취 소켓을 사용하면 추가 승인자 스레드 때문에 추가 오버헤드(메모리 및 스케줄링)가 생기기도 합니다.
예제 4 대량 호스팅
대량 호스팅은 트래픽 수준이 낮은 많은 가상 서버를 사용하도록 설정하는 구성입니다. 예를 들어, 트래픽 수준이 낮은 많은 개인용 홈 페이지를 호스트하는 ISP가 이 범주에 해당합니다.
가상 서버는 제공 서비스 수준에 따라 대개 URL 호스트 기반이고 여러 가상 서버 클래스 중 하나입니다. 예를 들어, 정적 내용만 허용하는 클래스와 정적 내용에 CGI도 허용하는 클래스를 가질 수 있습니다.
서버를 설치할 때 설치된 가상 서버 VS1이 defaultclass에 여전히 존재함을 유의하십시오.