Sun Java System Application Server Enterprise Edition 8.1 2005Q2 관리 설명서

HTTP 서비스 정보

HTTP 서비스

HTTP 서비스는 웹 응용 프로그램을 배포하고 배포된 웹 응용 프로그램을 HTTP 클라이언트에서 액세스할 수 있게 하는 기능을 제공하는 Application Server의 구성 요소입니다( 웹 응용 프로그램을 배포하는 방법 참조). 이 기능은 가상 서버와 HTTP Listener라는 두 종류의 관련된 객체 수단으로 제공됩니다.

가상 서버

가상 호스트라고도 하는 가상 서버는 동일한 물리적 서버에서 여러 개의 인터넷 도메인 이름을 호스트할 때 사용할 수 있는 객체입니다. 동일한 물리적 서버에서 호스트되는 모든 가상 서버는 해당 서버의 인터넷 프로토콜(IP) 주소를 공유합니다. 가상 서버는 서버의 도메인 이름(예: www.aaa.com)을 Application Server가 실행 중인 특정 서버와 연결합니다.


주 –

인터넷 도메인을 Application Server의 관리 도메인과 혼동하지 마십시오.


예를 들어, 물리적 서버에서 다음 도메인을 호스트하려고 합니다.

www.aaa.com
www.bbb.com
www.ccc.com

또한 www.aaa.com, www.bbb.comwww.ccc.com에 각각 연결된 웹 모듈 web1, web2web3이 있다고 가정합니다.

이러한 모든 URL을 물리적 서버에서 처리한다는 것을 의미합니다.

http://www.aaa.com:8080/web1
http://www.bbb.com:8080/web2
http://www.ccc.com:8080/web3

첫 번째 URL은 www.aaa.com 가상 호스트에 매핑되고 두 번째 URL은 www.bbb.com 가상 호스트에 매핑되며, 세 번째 URL은 www.ccc.com 가상 호스트에 매핑됩니다.

반면, 다음의 URL에서는 web3www.bbb.com에 등록되지 않았으므로 404 반환 코드가 반환됩니다.

http://www.bbb.com:8080/web3

이 매핑이 작동하려면 www.aaa.com, www.bbb.comwww.ccc.com 모두 물리적 서버의 IP 주소로 확인되어야 합니다. 이들을 네트워크의 DNS 서버에 등록해야 합니다. 또한 UNIX 시스템의 경우 이 도메인을 /etc/hosts 파일에 추가합니다(/etc/nsswitch.conf 파일의 hosts에 대한 설정에 files가 포함된 경우).

Application Server를 시작하면 다음과 같은 가상 서버를 자동으로 시작합니다.

비작업 환경에서 웹 서비스를 개발, 테스트 및 배포하기 위해서는 대개 server만이 유일하게 필요한 가상 서버입니다. 작업 환경에서는 물리적 서버가 하나만 있더라도 고유한 웹 서버를 가진 것으로 표시되도록 추가 가상 서버에서 사용자와 고객을 위한 호스팅 기능을 제공합니다.

HTTP Listener

가상 서버마다 하나 이상의 HTTP Listener를 통해 서버와 클라이언트 간의 연결을 제공합니다. 각 HTTP Listener는 IP 주소, 포트 번호, 서버 이름 및 기본 가상 서버를 가진 수신 소켓입니다.

HTTP Listener의 포트 번호와 IP 주소의 조합은 고유해야 합니다. 예를 들어, IP 주소를 0.0.0.0으로 지정하면 HTTP Listener를 시스템의 지정된 포트에 구성된 모든 IP 주소에서 수신할 수 있습니다. 또는 HTTP Listener에서 각 Listener에 대해 고유한 IP 주소를 지정할 수 있지만 동일한 포트를 사용합니다.

HTTP Listener는 IP 주소와 포트 번호의 조합이므로 동일한 IP 주소와 다른 포트 번호(예: 1.1.1.1:8081 및 1.1.1.1:8082)를 갖거나 다른 IP 주소와 동일한 포트 번호(예: 1.1.1.1:8081 및 1.2.3.4:8081, 시스템이 해당 주소에 모두 응답하도록 구성되어 있는 경우)를 갖는 여러 HTTP Listener를 가질 수 있습니다.

그러나 HTTP Listener에서 포트의 모든 IP 주소를 수신하는 0.0.0.0 IP 주소를 사용하는 경우 동일한 포트에서 특정 IP 주소를 수신하는 추가 IP 주소에 대한 HTTP Listener를 만들 수 없습니다. 예를 들어, 한 개의 HTTP Listener가 0.0.0.0:8080(포트 8080의 모든 IP 주소)을 사용하면 다른 HTTP Listener는 1.2.3.4:8080을 사용할 수 없습니다.

Application Server를 실행 중인 시스템은 대개 하나의 IP 주소만 액세스하기 때문에 HTTP Listener는 대개 0.0.0.0 IP 주소와 다른 포트 번호를 사용합니다. 각 포트 번호는 다른 용도에 사용됩니다. 시스템이 둘 이상의 IP 주소에 액세스할 경우 각 주소를 다른 용도로 사용할 수 있습니다.

기본적으로 Application Server가 시작되면

이러한 모든 Listener는 IP 주소 0.0.0.0과 Application Server 설치 중에 HTTP 서버 포트 번호로 지정한 포트 번호를 사용합니다. Application Server가 기본 포트 번호 값을 사용하면 http-listener-1은 포트 8080을 사용하고 http-listener-2는 포트 8181을 사용하며 admin-listener는 포트 4849를 사용합니다.

각 HTTP Listener에는 기본 가상 서버가 있습니다. 기본 가상 서버는 호스트 구성 요소가 HTTP Listener와 연결된 가상 서버와 일치하지 않는 모든 요청 URL을 HTTP Listener가 라우팅하는 서버입니다. 가상 서버는 http-listeners 속성에 HTTP Listener를 나열하여 HTTP Listener와 연결합니다.

또한 HTTP Listener에 억셉터 스레드 수도 지정합니다. 억셉터 스레드는 연결을 기다리는 스레드입니다. 스레드는 연결을 승인하고 이 연결을 작업자 스레드에서 선택할 수 있도록 연결 대기열이라고 하는 대기열에 둡니다. 새로운 요청이 있을 때 항상 사용할 수 있도록 억셉터 스레드를 충분히 구성합니다. 그러나 시스템에 많은 부담을 주지 않도록 적당히 구성합니다. 연결 대기열은 억셉터 스레드가 방금 수락한 새 연결과 연결 유지 연결 관리 하위 시스템이 관리하는 지속적인 연결을 모두 포함합니다.

요청 처리 스레드 집합은 연결 대기열에서 들어오는 HTTP 요청을 검색하여 처리합니다. 이 스레드는 헤더를 구문 분석하고 해당하는 가상 서버를 선택한 다음 요청 처리 엔진을 실행하여 요청을 서비스합니다. 처리할 요청이 더 이상 없지만 연결에서 HTTP/1.1을 사용하거나 Connection: keep-alive 헤더를 전송하여 지속성을 유지할 수 있는 경우 요청 처리 스레드에서는 연결이 유휴 상태인 것으로 가정하고 그 연결을 연결 유지 연결 관리 하위 시스템으로 전달합니다.

연결 유지 하위 시스템은 정기적으로 유휴 연결을 폴링하여 나중에 처리할 수 있도록 작업이 있는 연결을 연결 대기열에 넣어둡니다. 여기에서 요청 처리 스레드는 다시 연결을 검색하고 요청을 처리합니다. 연결 유지 하위 시스템은 수 만개의 연결을 관리할 수 있기 때문에 다중 스레딩되어 있습니다. 연결 개수를 더 작은 하위 집합으로 나누는 효율적인 폴링 기술을 사용하여 요청이 준비된 연결과 닫힌 것으로 간주해도 될 정도로 허용 가능한 최대 연결 유지 시간을 초과한 것으로 충분히 유휴 상태였던 연결을 확인합니다.

HTTP Listener의 서버 이름은 서버가 리디렉션의 일부로 클라이언트에 전송한 URL에 표시되는 호스트 이름입니다. 이 속성은 서버에서 자동으로 생성하는 URL에 영향을 주지만, 서버에 저장된 디렉토리 및 파일의 URL에는 영향을 주지 않습니다. 서버에서 별칭을 사용하는 경우 이 이름은 대개 별칭 이름입니다. 클라이언트가 Host: 헤더를 보내면 호스트 이름이 리디렉션에서 HTTP Listener의 서버 이름 값을 대체합니다.

원래 요청에 지정된 것과는 다른 포트 번호를 사용하도록 리디렉션 포트를 지정합니다. 다음 상황 중 하나에서 리디렉션이 발생합니다.

HTTP Listener에 대한 보안 활성화 여부 및 사용한 보안 종류(예: SSL 프로토콜 및 암호화)도 지정합니다.

Application Server에 배포된 웹 응용 프로그램에 액세스하려면 웹 응용 프로그램에 지정된 컨텍스트 루트와 함께 URL http://localhost:8080/(보안 처리된 응용 프로그램일 경우 http://localhost:8080/)을 사용합니다. 관리 콘솔에 액세스하려면 https://localhost:4849/ 또는 https://localhost:4849/asadmin/ URL(기본 컨텍스트 루트)을 사용합니다.

가상 서버에서 기존 HTTP Listener를 지정해야 하고 다른 가상 서버에서 이미 사용 중인 HTTP Listener는 지정할 수 없기 때문에 새로운 가상 서버를 만들기 전에 최소한 하나의 HTTP Listener를 만들어야 합니다.