JEUS Web Engine 안내서 

JEUS v7.0 Fix#4

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 Engine 안내서 

발행일: 2015-07-22

소프트웨어 버전: JEUS v7.0 Fix#4

안내서 버전: v2.1.6


내용 목차

안내서에 대하여
1. 웹 엔진
1.1. 개요
1.2. 구성 요소
1.3. 주요 기능
1.4. 관리 도구
1.4.1. 도구 종류
1.4.2. 제어와 모니터링
1.5. 디렉터리 구조
1.6. 환경 설정
1.6.1. XML 설정 파일
1.6.2. 모니터링 설정
1.6.3. 기본 오류 페이지 설정
1.6.4. 오류 발생의 경우 Stack Trace 첨부 설정
1.6.5. 인코딩 설정
1.6.6. JSP 엔진 설정
1.6.7. 응답 헤더 설정
1.6.8. 쿠키 정책 설정
1.6.9. 세션 설정
1.6.10. 로그 설정
1.6.11. Async Servlet 타임아웃 처리 설정
1.6.12. 웹 엔진 레벨의 프로퍼티 설정
1.6.13. 웹 공격 대응 설정
1.6.14. 특정 URL 패턴의 HTTP 요청 방지
1.7. 웹 엔진 튜닝
2. 웹 커넥션 관리
2.1. 개요
2.2. 구성 요소
2.2.1. 리스너
2.2.2. 커넥터
2.2.3. Worker Thread Pool
2.3. 웹 커넥션 설정
2.3.1. 리스너 공통 설정
2.3.2. AJP 리스너 설정
2.3.3. HTTP 리스너 설정
2.3.4. TCP 리스너 설정
2.3.5. WebtoB 커넥터 설정
2.3.6. Tmax 커넥터 설정
2.3.7. 자동 Thread Pool 관리 설정(Thread 상태 통보)
2.4. 부하 분산을 위한 웹 서버 설정
2.4.1. 부하 분산 구조
2.4.2. Apache 웹 서버
2.4.3. IIS 웹 서버 및 Iplanet 웹 서버 설정
2.4.4. WebtoB와의 부하 분산 설정
2.5. TCP 리스너 사용
2.5.1. 맞춤 통신 프로토콜 정의
2.5.2. Dispatcher Config Class 구현
2.5.3. TCP Servlet 구현
2.5.4. 맞춤 프로토콜 코드를 위한 TCP 리스너 설정
2.5.5. TCP 클라이언트 구현
2.5.6. TCP 클라이언트 컴파일과 실행
2.6. 리스너 튜닝
3. 웹 컨텍스트
3.1. 개요
3.2. 기본 구조
3.2.1. 웹 컨텍스트 콘텐츠
3.2.2. 웹 컨텍스트 내부 구조(WAR 파일 구조)
3.3. 웹 컨텍스트 Deploy
3.3.1. jeus-web-dd.xml 설정
3.3.2. 웹 컨텍스트 Redeploy(Graceful Redeploy)
3.3.3. Shared Library Reference 추가
3.3.4. 호환성을 위한 웹 컨텍스트 레벨의 옵션 설정
3.3.5. 부가 기능 사용을 위한 설정
3.3.6. 웹 보안 설정
3.3.7. 보안 Role 매핑
3.3.8. Symbolic Reference 매핑
3.4. 웹 컨텍스트 모니터링
3.5. 웹 컨텍스트 제어
3.5.1. 웹 컨텍스트 리로드
3.5.2. 웹 컨텍스트의 비동기 요청에 대한 Thread Pool 모니터링
3.5.3. 웹 컨텍스트 중지
3.5.4. 웹 컨텍스트 리로드
3.6. 웹 컨텍스트 튜닝
3.7. 비동기식 처리 프로그래밍 가이드
3.7.1. Servlet 표준에 따른 주의사항
3.7.2. 기타 주의사항
4. JSP 엔진
4.1. 개요
4.2. Apache Tomcat Jasper
4.3. JSP 엔진의 기능
4.3.1. JSP 리로딩
4.3.2. JSP 프리컴파일
4.3.3. 메모리에서의 JSP 컴파일 및 실행 기능
4.4. JSP 엔진 설정
4.4.1. 웹 엔진 레벨에서의 설정
4.4.2. jeus-web-dd.xml 설정
4.4.3. JSP 하위 호환성을 위한 웹 컨텍스트 레벨의 옵션 설정
5. 가상 호스트
5.1. 개요
5.2. 웹 엔진과 가상 호스트
5.2.1. ServletContext 객체와 가상 호스트
5.3. 가상 호스트를 통한 웹 컨텍스트 요청
5.3.1. URL 매칭 예제
5.3.2. URL 매칭 순서
5.4. 가상 호스트 설정
5.4.1. 추가
5.4.2. 수정
5.4.3. 삭제
6. WebSocket 컨테이너
6.1. 개요
6.2. 제약 사항
6.3. WebSocket 컨테이너의 기능
6.3.1. WebSocket Session Failover
6.3.2. 기타
6.4. WebSocket 컨테이너 설정
7. JEUS WebCache
7.1. 개요
7.2. JSP Caching
7.2.1. 기본 내용
7.2.2. <cache> 태그
7.2.3. <jeus:cache> 사용 예
7.2.4. flush 기능 사용
7.2.5. refresh 기능 사용
7.3. HTTP Response Caching
7.3.1. 필터 설정
8. Reverse Proxy
8.1. 개요
8.1.1. 적용 예시
8.2. 사용 방법
8.2.1. Proxy 서버 설정
8.2.2. Context-path 설정
8.2.3. Proxy 필터 설정
8.2.4. Deploy
8.3. 설정 예
9. 클래스 동적 반영
9.1. 개요
9.2. 기본 설정 및 동작
9.2.1. 서버 설정
9.2.2. 애플리케이션 설정
9.2.3. 설정에 따른 동작
9.2.4. JEUS HotSwap으로 지원 가능한 애플리케이션 및 변환
9.2.5. JEUS HotSwap 제약 사항
10. 따라하기
색인

그림 목차

[그림 1.1] 웹 엔진의 구성 요소
[그림 1.2] 웹 엔진 모니터링 - 메뉴 이동
[그림 1.3] server1 웹 엔진 모니터링 - 정보 조회
[그림 1.4] JEUS 디렉터리 구조에서의 웹 엔진
[그림 1.5] 설정 적용 - Activate Changes
[그림 1.6] 고급 선택사항
[그림 1.7] 모니터링 - 설정 메뉴 이동
[그림 1.8] 모니터링 - 설정
[그림 1.9] 모니터링 - 설정 적용 결과
[그림 1.10] 기본 오류 페이지 - 설정
[그림 1.11] 기본 오류 페이지 - 설정 적용 결과
[그림 1.12] 오류 발생할 때 Stack Trace 첨부 - 설정
[그림 1.13] 오류 발생하는 경우 Stack Trace 첨부 - 설정 적용 결과
[그림 1.14] 웹 엔진 인코딩 - 설정
[그림 1.15] 웹 엔진 인코딩 - 설정 적용 결과
[그림 1.16] 웹 엔진 응답 헤더 - 설정
[그림 1.17] 웹 엔진 응답 헤더 - 설정 적용
[그림 1.18] 웹 엔진 쿠키 정책 - 설정
[그림 1.19] 웹 엔진 쿠키 정책 - 설정 적용 결과
[그림 1.20] 웹 엔진 액세스 로그 - 설정 메뉴 이동
[그림 1.21] 웹 엔진 액세스 로그 - 설정
[그림 1.22] 웹 엔진 액세스 로그 - 설정 적용 결과
[그림 1.23] 유저 로그 - 설정
[그림 1.24] 유저 로그 - 핸들러 추가
[그림 1.25] 유저 로그 - 핸들러 설정
[그림 1.26] 유저 로그 - 핸들러 추가 확인
[그림 1.27] 유저 로그 - 핸들러 추가 적용 결과
[그림 1.28] Async Servlet 타임아웃 처리 - Async Timeout Min Threads 설정
[그림 1.29] Async Servlet 타임아웃 처리 - Async Timeout Min Threads 설정 적용 결과
[그림 1.30] 웹 엔진 프로퍼티 - 설정
[그림 1.31] 웹 엔진 프로퍼티 - 설정 적용 결과
[그림 1.32] 웹 공격 대응 - 메뉴 이동
[그림 1.33] 웹 공격 대응 - 고급 선택사항 설정
[그림 1.34] URL 패턴을 통한 HTTP 요청 방지 기능 - 고급 선택사항 설정
[그림 2.1] 웹 엔진의 리스너
[그림 2.2] 웹 엔진의 커넥터
[그림 2.3] Compression 기능 설정 화면 - 고급설정
[그림 2.4] AJP 리스너 추가 및 수정 - 추가
[그림 2.5] AJP 리스너 추가 및 수정 - 일반 설정
[그림 2.6] AJP 리스너 추가 및 수정 - Thread Pool 설정
[그림 2.7] AJP 리스너 추가 및 수정 - Thread State Notify설정
[그림 2.8] AJP 리스너 추가 및 수정 - 고급 선택사항 설정
[그림 2.9] AJP 리스너 추가 및 수정 - 설정 확인
[그림 2.10] AJP 리스너 추가 및 수정 - 설정 적용 결과
[그림 2.11] AJP 리스너 삭제 - 메뉴 이동
[그림 2.12] AJP 리스너 삭제 - 선택
[그림 2.13] AJP 리스너 삭제 - 삭제 확인
[그림 2.14] HTTP 리스너 추가 및 수정 - 일반 설정
[그림 2.15] HTTP 리스너 추가 및 수정 - 고급 선택사항 설정
[그림 2.16] HTTP 리스너 추가 및 수정 - 추가 확인
[그림 2.17] HTTP 리스너 삭제 - 선택
[그림 2.18] HTTP 리스너 삭제 - 삭제 확인
[그림 2.19] TCP 리스너 추가 및 수정 - 일반 설정
[그림 2.20] TCP 리스너 추가 및 수정 - 고급 선택사항 설정
[그림 2.21] TCP 리스너 추가 및 수정 - 추가 확인
[그림 2.22] TCP 리스너 삭제 - 선택
[그림 2.23] TCP 리스너 삭제 - 삭제 확인
[그림 2.24] WebtoB 커넥터 추가 및 수정 - 기본 설정
[그림 2.25] WebtoB 커넥터 추가 및 수정 - 연결 설정
[그림 2.26] WebtoB 커넥터 추가 및 수정 - Thread Pool 설정
[그림 2.27] WebtoB 커넥터 추가 및 수정 - Thread State Notify 설정
[그림 2.28] WebtoB 커넥터 추가 및 수정 - 고급 선택사항 설정
[그림 2.29] WebtoB 커넥터 추가 및 수정 - 추가 확인
[그림 2.30] WebtoB 커넥터 삭제 - 선택
[그림 2.31] WebtoB 커넥터 삭제 - 삭제 확인
[그림 2.32] Tmax 커넥터 추가 및 수정 - 기본 설정
[그림 2.33] Tmax 커넥터 추가 및 수정 - 고급 선택사항 설정
[그림 2.34] Tmax 커넥터 추가 및 수정 - 추가 확인
[그림 2.35] Tmax 커넥터 삭제 - 선택
[그림 2.36] Tmax 커넥터 삭제 - 삭제 확인
[그림 2.37] Tmax 커넥터 삭제 - 삭제 적용 결과
[그림 2.38] 자동 Thread Pool 관리 설정 - Thread State Notify 설정
[그림 2.39] 소규모 웹 사이트에서의 부하 분산 구조
[그림 2.40] 부하 분산 서버 구조 - 2대의 WebtoB가 각각 2대의 웹 엔진에 연결된 경우
[그림 2.41] WebtoB 커넥터 설정 상태
[그림 3.1] WAR 파일 구조
[그림 3.2] 웹 컨텍스트 모니터링 - 애플리케이션 조회
[그림 3.3] 웹 컨텍스트 모니터링 - 웹 애플리케이션 선택
[그림 3.4] 웹 컨텍스트 모니터링 - 웹 애플리케이션 세부 정보 조회
[그림 3.5] 웹 애플리케이션 reload
[그림 3.6] 웹 애플리케이션 thread-info
[그림 4.1] JSP 엔진 설정 - 메뉴 이동
[그림 4.2] JSP 엔진 설정 - 기본 정보 설정
[그림 4.3] JSP 엔진 설정 - 설정 적용 결과
[그림 5.1] 가상 호스트의 이용 패턴
[그림 5.2] 웹 엔진과 가상 호스트, 웹 컨텍스트 간의 유효한 관계의 예
[그림 5.3] 가상 호스트 추가 - 메뉴 이동
[그림 5.4] 가상 호스트 추가 - 기본 정보 설정
[그림 5.5] 가상 호스트 추가 - 추가 적용 결과
[그림 5.6] 가상 호스트 수정 - 기본 정보 수정
[그림 5.7] 가상 호스트 수정 - Access Log 추가 설정
[그림 5.8] 가상 호스트 수정 - 액세스 로그 추가 적용 결과
[그림 5.9] 가상 호스트 삭제 - 삭제 확인
[그림 7.1] 엔트리 Caching에 사용되는 자료 구조

예 목차

[예 1.1] XML 헤더 : <<domain.xml>>
[예 1.2] XML 헤더 : <<jeus-web-dd .xml>>
[예 1.3] XML 헤더 : <<web.xml >>
[예 1.4] Page Character Encoding이 설정된 JSP 예제 : Request Encoding
[예 1.5] Page Character Encoding이 설정된 JSP 예제 일부 : <<sample.jsp>>
[예 1.6] Response Character Encoding이 설정된 JSP 예제 일부 : <<sample2.jsp>>
[예 1.7] Page 및 Response Character Encoding이 설정된 web.xml: <<web.xml>>
[예 1.8] jeus.servlet.logger.AccessLoggerFilter 인터페이스의 상세 내용
[예 1.9] 필터 클래스 정의 예제
[예 2.1] mod_jk 설정 파일 예제 : <<workers.properties>>
[예 2.2] Apache에 mod_jk 설정 예제 : <<httpd.conf>>
[예 2.3] WebtoB 설정 예 : <<http.m>>
[예 2.4] TCPDispatcherConfig 구현 예 : <<SampleConfig.java>>
[예 2.5] TCP Servlet 구현 예 : <<SampleTCPServlet.java>>
[예 2.6] TCP 핸들러 DD : <<web.xml>>
[예 2.7] TCP 클라이언트 구현 예 : <<Client.java>>
[예 3.1] 웹 컨텍스트 설정 파일 : <<jeus-web-dd.xml>>
[예 3.2] Shared Library Reference 추가 : <<libraries.xml>>
[예 3.3] 정적 리소스를 처리하는 서블릿 매핑 : <<web.xml>>
[예 3.4] JEUS 7 Fix#1에서 Spring 3.0 mvc:default-servlet-handler를 위한 ResourceServlet 등록 : <<web.xml>>
[예 3.5] Redirect Location 보안 설정 인터페이스: <<RedirectStrategy>>
[예 3.6] Redirect Location 보안 설정 구현 예: <<RejectCrlfRedirectStrategy>>
[예 3.7] Redirect Location 보안 설정 : <<jeus-web-dd.xml>>
[예 3.8] 보안 Role 매핑 : <<web.xml>>
[예 3.9] 보안 Role 매핑 : <<jeus-web-dd.xml>>
[예 3.10] Symbolc Reference 매핑 : <<web.xml>>
[예 3.11] Symbolc Reference 매핑 : <<jeus-web-dd.xml>>
[예 3.12] <async-config> 설정 : <<jeus-web-dd.xml>>
[예 3.13] 잘못된 비동기식 처리 프로그래밍 작성 예 (1)
[예 3.14] 잘못된 비동기식 처리 프로그래밍 작성 예 (2)
[예 3.15] 잘못된 비동기식 처리 프로그래밍 작성 예 (3)
[예 4.1] 웹 컨텍스트 설정 파일 : <<jeus-web-dd.xml>>
[예 4.2] JSP 하위 호환성을 위한 웹 컨텍스트 설정 : <<jeus-web-dd.xml>>
[예 6.1] 웹 컨텍스트 설정 파일 : <<jeus-web-dd.xml>>
[예 7.1] <cache> 태그 설정 : <<jeuscache.tld>>
[예 7.2] <jeus:cache> 사용 예제 : <<cache.jsp>>
[예 7.3] jsp:inclue를 이용한 <jeus:cache> 사용 예제 : <<main.jsp>>
[예 7.4] 필터 설정 : <<web.xml>>
[예 8.1] data.xml의 dtd : <<proxy-config.dtd>>
[예 8.2] Proxy 필터만 사용할 경우 : <<web.xml>>
[예 8.3] Proxy 필터와 Rewrite 필터를 함께 사용할 경우 : <<web.xml>>
[예 9.1] Jeus HotSwap설정 : <<startDomainAdminServer>>
[예 9.2] Jeus HotSwap 설정 : <<startManagedServer>>
[예 9.3] Auto Reload 설정 : <<jeus-web-dd.xml>>