JEUS Web Container 안내서 

JEUS v6.0 Fix#9

Restricted Rights Legend

All TmaxSoft Software (JEUS®) and documents are protected by copyright laws and international convention. TmaxSoft software and documents are made available under the terms of the TmaxSoft License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd.

이 소프트웨어(JEUS®) 사용설명서의 내용과 프로그램은 저작권법과 국제 조약에 의해서 보호받고 있습니다. 사용설명서의 내용과 여기에 설명된 프로그램은 TmaxSoft Co., Ltd.와의 사용권 계약 하에서만 사용이 가능하며, 사용권 계약을 준수하는 경우에만 사용 또는 복제할 수 있습니다. 이 사용설명서의 전부 또는 일부분을 TmaxSoft의 사전 서면 동의 없이 전자, 기계, 녹음 등의 수단을 사용하여 전송, 복제, 배포, 2차적 저작물작성 등의 행위를 하여서는 안 됩니다.

Trademarks

JEUS® is registered trademark of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies.

JEUS®는 TmaxSoft Co., Ltd.의 등록 상표입니다. 기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상표로서 참조용으로만 사용됩니다.

Open Source Software Notice

Some modules or files of this product are subject to the terms of the following licenses. : APACHE2.0, CDDL1.0, EDL1.0, OPEN SYMPHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1

Detailed Information related to the license can be found in the following directory : ${INSTALL_PATH}/lib/licenses

본 제품의 일부 파일 또는 모듈은 다음의 라이선스를 준수합니다. : APACHE2.0, CDDL1.0, EDL1.0, OPEN SYMPHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1

관련 상세한 정보는 제품의 다음의 디렉터리에 기재된 사항을 참고해 주십시오. : ${INSTALL_PATH}/lib/licenses

안내서 정보

안내서 제목: JEUS Web Container 안내서 

발행일: 2013-10-31

소프트웨어 버전: JEUS v6.0 Fix#9

안내서 버전: v2.1.4


내용 목차

안내서에 대하여
1. JEUS 웹
1.1. 개요
1.2. JEUS 웹 구조와 주요 기능
1.2.1. 웹 컨테이너와 JEUS 시스템
1.2.2. 웹 컨테이너의 기본 컴포넌트
1.3. JEUS 웹 디렉터리 구조
1.4. JEUS 웹 툴
1.5. JEUS 웹 환경설정
1.5.1. 환경변수
1.5.2. XML 설정 파일
2. 웹 컨테이너
2.1. 개요
2.2. 웹 컨테이너 주요 기능과 구조
2.2.1. 주요 기능
2.2.2. 디렉터리 구조
2.3. 웹 컨테이너 설정
2.3.1. 개요
2.3.2. 기본 설정
2.3.3. 자동 모니터링
2.3.4. stdout과 stderr Redirection
2.3.5. Context Group
2.3.6. Database Connection Pool
2.3.7. Session
2.3.8. Logging
2.3.9. Shutdown Timeout
2.3.10. 특정 URL 패턴의 HTTP 요청 방지
2.4. Logging 설정
2.4.1. 공통 설정 항목
2.4.2. Access log 관련 설정 항목
2.4.3. User log 관련 설정 항목
2.5. 웹 컨테이너 제어와 모니터링
2.5.1. 웹 컨테이너 제어
2.5.2. 웹 컨테이너 모니터링
3. Context Group
3.1. 개요
3.2. Context Group 주요 기능과 구조
3.2.1. 주요 기능
3.2.2. 디렉터리 구조
3.3. Context Group 설정
3.3.1. 기본 설정
3.3.2. 인코딩 설정
3.3.3. JSP 엔진 설정
3.3.4. Logging 설정
3.3.5. Session 설정
3.3.6. Response Header 설정
3.4. Context Group 모니터링
3.5. Context Group 튜닝
4. 웹 서버 연결과 클러스터링
4.1. 개요
4.2. 웹 서버 연결
4.2.1. 리스너
4.2.2. Worker Thread와 Worker Thread Pool
4.2.3. Thread Pool의 Active-Management와 상태 통보
4.2.4. 여러 개의 웹 컨테이너와 웹 서버 클러스터링
4.3. 리스너 설정
4.3.1. HTTP, TCP, HTTPS 리스너 설정
4.3.2. WebtoB 리스너 설정
4.3.3. AJP13 리스너 설정
4.3.4. Tmax 리스너 설정
4.3.5. 자동 Thread Pool 관리 설정(Thread 상태 통보)
4.4. 리스너 연동과 클러스터링을 위한 웹 서버 설정
4.4.1. Apache 웹 서버 설정과 클러스터링
4.4.2. IIS 웹 서버 설정과 클러스터링
4.4.3. SunOne(Iplanet) 웹 서버 설정과 클러스터링
4.4.4. WebtoB 웹 서버 설정과 클러스터링
4.5. TCP 리스너 사용
4.5.1. 맞춤 통신 프로토콜 정의
4.5.2. Dispatcher 설정 클래스 구현
4.5.3. TCP Handler 구현
4.5.4. 맞춤 프로토콜 코드를 위한 TCP 리스너 설정
4.5.5. TCP 클라이언트 구현
4.5.6. TCP 클라이언트 컴파일과 실행
4.6. 보안(SSL) 리스너 사용
4.6.1. 개요
4.6.2. 디렉터리 구조
4.6.3. 보안 리스너 설정
4.6.4. SSL Keystore 설정
4.6.5. SSL Truststore 설정
4.6.6. 보안 리스너 속성 설정
4.6.7. 보안 리스너 시작하기
4.6.8. 보안 리스너에 연결하기
4.7. 리스너 튜닝
5. Session Tracking
5.1. 개요
5.2. Session Tracking의 주요 기능
5.2.1. 기본 기능
5.2.2. 클러스터 환경에서 Session Tracking
5.2.3. Session Routing(Sticky Session)
5.2.4. Session Server
5.2.5. 혼합 모드
5.2.6. 분산 Session Server
5.2.7. URL Rewriting과 Cookie
5.2.8. Shared Session 데이터
5.3. Session Tracking 설정
5.3.1. 중앙 Session Server 설정
5.3.2. 분산 Session Server 설정
5.4. Session Tracking 튜닝
6. Web Context(웹 애플리케이션)
6.1. 개요
6.2. Web Context의 기본 개념과 구조
6.2.1. 기본 구조
6.2.2. WAR 파일 구조
6.2.3. 디렉터리 구조
6.3. Web Context 등록
6.3.1. Context 디렉터리 생성
6.3.2. Deployment Descriptor(DD) 파일 설정
6.3.3. Shared Library에 대한 레퍼런스 추가
6.3.4. 하위 호환성을 위한 Context 레벨의 추가 옵션 설정
6.3.5. 부가 기능 사용을 위한 설정
6.3.6. 웹 보안 설정
6.3.7. 보안 Role 매핑
6.3.8. Symbolic 레퍼런스 매핑
6.3.9. Context 등록
6.3.10. 배치 컴파일러를 사용한 JSP 프리컴파일
6.3.11. 등록 확인
6.4. Web Context 요청
6.5. Web Context 모니터링
6.6. Web Context 튜닝
7. 가상 호스트
7.1. 개요
7.2. 가상 호스트의 기본 개념
7.2.1. 기본 개념
7.2.2. 기본 가상 호스트
7.2.3. ServletContext 객체와 가상 호스트에 대한 주의 사항
7.3. 가상 호스트 설정
7.3.1. 도메인 이름 등록
7.3.2. WEBMain.xml에 가상 호스트 설정
7.4. 가상 호스트를 통한 Context 요청
7.4.1. URL 매칭에 관한 기본 규칙
7.4.2. URL 매칭의 예
8. JEUS WebCache
8.1. 개요
8.2. JSP Caching
8.2.1. 기본 내용
8.2.2. <cache> 태그
8.2.3. jeus:cache 사용 예
8.2.4. flush 기능 사용
8.2.5. refresh 기능 사용
8.3. HTTP Response Caching
8.3.1. 필터 설정
9. Reverse Proxy
9.1. 개요
9.1.1. 적용 예시
9.2. 사용 방법
9.2.1. Proxy 서버 설정
9.2.2. Context-path 설정
9.2.3. Proxy Filter 설정
9.2.4. Deploy
9.3. 설정 예
10. 따라하기
용어해설
색인

그림 목차

[그림 1.1] 웹 컨테이너와 JEUS 시스템
[그림 1.2] 웹 컨테이너의 기본 컴포넌트
[그림 1.3] JEUS 웹 모듈에 관련된 기본 디렉터리 구조
[그림 2.1] 웹 컨테이너 구조
[그림 2.2] JEUS 웹 컨테이너 관련 디렉터리
[그림 3.1] 웹 컨테이너에 연관된 Context Group
[그림 3.2] Context Group의 상세 모습과 그 하위 컴포넌트들
[그림 3.3] Context Group 디렉터리 구조
[그림 4.1] JEUS 웹 컨테이너 중 웹 서버 연결 부분 컴포넌트
[그림 4.2] 웹 컨테이너의 웹 서버와 클라이언트 리스너
[그림 4.3] 2개의 웹 서버가 2개의 웹 컨테이너에 각각 연결되어 있는 작은 클러스터
[그림 4.4] 2개의 WebtoB 웹 서버가 2개의 웹 컨테이너와 연결된 경우
[그림 4.5] 2개의 WebtoB 리스너가 1개의 WebtoB에 연결된 경우
[그림 4.6] 복잡한 WebtoB 웹 서버 구성
[그림 4.7] 보안 리스너의 초기 디렉터리
[그림 4.8] Internet Explorer에서의 인증서 보안 경고창
[그림 4.9] 보안된 SSL 연결
[그림 5.1] JEUS 웹 컨테이너의 구조 중 Session에 관련된 부분들
[그림 5.2] 웹 컨테이너가 Session Cookie를 발급하는 과정
[그림 5.3] Session ID Cookie로 웹 컨테이너에 두 번째 요청을 보내는 과정
[그림 5.4] Session ID Cookie를 이용하여 2개의 웹 컨테이너와 Session을 시작하는 경우
[그림 5.5] Session Routing이 없는 경우 클라이언트 Session 삭제
[그림 5.6] Session Cookie에 추가의 웹 컨테이너 ID 부여
[그림 5.7] Session Routing의 작동
[그림 5.8] 장애가 발생한 웹 컨테이너의 문제
[그림 5.9] Session Server가 사용될 경우 클라이언트의 첫 HTTP 요청 처리
[그림 5.10] Session 데이터의 요청 처리
[그림 6.1] JEUS 웹 컨테이너에 context/Web application
[그림 6.2] WAR 파일 구조
[그림 6.3] Web Context 디렉터리의 구조
[그림 6.4] 웹 브라우저에서 Servlet 요청하기
[그림 6.5] JEUS 웹 컨테이너에 의해 생성되는 기본 오류 페이지
[그림 7.1] JEUS 웹 컨테이너의 가상 호스트 컴포넌트
[그림 7.2] 가상 호스트의 기본적인 개념
[그림 7.3] Context Group과 가상 호스트, Context 간의 유효한 관계의 예
[그림 7.4] 웹 컨테이너에서 DNS 이름으로 같은 경로를 가진 Context 사용
[그림 8.1] 엔트리 캐싱에 사용되는 자료구조

표 목차

[표 1.1] JEUS 웹 모듈 환경변수

예 목차

[예 2.1] 웹 컨테이너 기본 설정 : <<JEUSMain.xml>>
[예 2.2] 자동 모니터링 설정 : <<WEBMain.xml>>
[예 2.3] Context Group 설정 : <<WEBMain.xml>>
[예 2.4] Session 설정 : <<WEBMain.xml>>
[예 2.5] 웹 컨테이너 Logging 설정 : <<WEBMain.xml>>
[예 2.6] <access-log>에 필터 등록 : <<WEBMain.xml>>
[예 3.1] Context Group 설정 : <<WEBMain.xml>>
[예 3.2] Context Group 기본 설정 : <<WEBMain.xml>>
[예 3.3] Context Group 인코딩 설정 : <<WEBMain.xml>>
[예 3.4] JSP 엔진 설정 : <<WEBMain.xml>>
[예 3.5] Context Group 레벨에서 Session 설정 : <<WEBMain.xml>>
[예 3.6] Response Header 설정 : <<WEBMain.xml>>
[예 4.1] 리스너 설정 : <<WEBMain.xml>>
[예 4.2] HTTP, TCP, HTTPS 리스너 설정 : <<WEBMain.xml>>
[예 4.3] WebtoB 리스너 설정 : <<WEBMain.xml>>
[예 4.4] AJP13 리스너 설정 : <<WEBMain.xml>>
[예 4.5] Tmax 리스너 설정 : <<WEBMain.xml>>
[예 4.6] 자동 Thread Pool 관리 설정 : <<WEBMain.xml>>
[예 4.7] Apache 웹 서버 설정 : <<WEBMain.xml>>
[예 4.8] AJP13 프로토콜을 사용 : <<workers.properties>>
[예 4.9] <<httpd.conf>>
[예 4.10] <<uriworkermap.properties>>
[예 4.11] <<magnus.conf>>
[예 4.12] <<magnus.conf>>
[예 4.13] 웹 컨테이너 A : <<WEBMain.xml>>
[예 4.14] 웹 컨테이너 B : <<WEBMain.xml>>
[예 4.15] http.m of WebtoB Server A
[예 4.16] <<SampleConfig.java>>
[예 4.17] <<SampleServlet.java>>
[예 4.18] <<web.xml>>
[예 4.19] <<WEBMain.xml>>
[예 4.20] <<JEUSMain.xml>>
[예 4.21] <<jeus-web-dd.xml>>
[예 4.22] <<Client.java>>
[예 4.23] JEUS_HOME\config\<node-name>\<node-name>_servlet_<engine-name>\WEBMain.xml
[예 4.24] JEUS_HOME\config\<node-name>\JEUSMain.xml
[예 4.25] JEUS_HOME\webhome\app_home\webapps\MyContext\WEB-INF\jeus-web-dd.xml
[예 4.26] JEUS_HOME\webhome\app_home\webapps\MyContext\WEB-INF\web.xml
[예 4.27] JEUS_HOME\webhome\app_home\webapps\MyContext\hello.html
[예 4.28] 보안 리스너 설정 : <<WEBMain.xml>>
[예 4.29] <<JEUS_HOME\config\<node-name>\JEUSMain.xml>>
[예 5.1] Session Tracking 설정 : <<WEBMain.xml>>
[예 5.2] 노드 클러스터링을 하지 않은 상태에서 중앙 Session Server 사용 : <<WEBMain.xml>>
[예 5.3] <<vhost.properties>>
[예 6.1] Web Context 설정 파일 : <<jeus-web-dd.xml>>
[예 6.2] Shared Library 레퍼런스 추가 : <<libraries.xml>>
[예 6.3] Redirect Location 보안 설정 인터페이스: <<RedirectStrategy>>
[예 6.4] Redirect Location 보안 설정 구현 예: <<RejectCrlfRedirectStrategy>>
[예 6.5] Redirect Location 보안 설정 : <<jeus-web-dd.xml>>
[예 6.6] 보안 Role 매핑 : <<web.xml>>
[예 6.7] 보안 Role 매핑 : <<jeus-web-dd.xml>>
[예 6.8] Symbolc 레퍼런스 매핑 : <<web.xml>>
[예 6.9] Symbolc 레퍼런스 매핑 : <<jeus-web-dd.xml>>
[예 6.10] Context 등록 : <<JEUSMain.xml>>
[예 7.1] 가상 호스트 설정 : <<WEBMain.xml>>
[예 7.2] 가상 호스트의 설정 : <<WEBMain.xml>>
[예 7.3] 가상 호스트의 설정 : <<JEUSMain.xml>>
[예 7.4] vhost1ctx1 : <<jeus-web-dd.xml>>
[예 7.5] vhost1ctx2 : <<jeus-web-dd.xml>>
[예 7.6] vhost2ctx1 : <<jeus-web-dd.xml>>
[예 7.7] vhost2ctx2 :<<jeus-web-dd.xml>>
[예 7.8] default1 : <<jeus-web-dd.xml>>
[예 7.9] default2 :<<jeus-web-dd.xml>>
[예 7.10] default3 : <<jeus-web-dd.xml>>
[예 8.1] <cache> 태그 설정 : <<jeuscache.tld>>
[예 8.2] <<cache.jsp>>
[예 8.3] <<main.jsp>>
[예 8.4] 필터 설정 : <<web.xml>>
[예 9.1] <<proxy-config.dtd>>
[예 10.1] <<JEUSMain.xml>>
[예 10.2] <<WEBMain.xml>>