JEUS Web Engine 안내서 

JEUS 8

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 this document may only be distributed 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. Nothing in this software document and agreement constitutes a transfer of intellectual property rights regardless of whether or not such rights are registered) or any rights to TmaxSoft trademarks, logos, or any other brand features.

This document is for information purposes only. The company assumes no direct or indirect responsibilities for the contents of this document, and does not guarantee that the information contained in this document satisfies certain legal or commercial conditions. The information contained in this document is subject to change without prior notice due to product upgrades or updates. The company assumes no liability for any errors in this document.

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

이 소프트웨어 사용설명서와 프로그램의 사용권 계약은 어떠한 경우에도 사용설명서 및 프로그램과 관련된 지적재산권(등록 여부를 불문)을 양도하는 것으로 해석되지 아니하며, 브랜드나 로고, 상표 등을 사용할 권한을 부여하지 않습니다. 사용설명서는 오로지 정보의 제공만을 목적으로 하고, 이로 인한 계약상의 직접적 또는 간접적 책임을 지지 아니하며, 사용설명서 상의 내용은 법적 또는 상업적인 특정한 조건을 만족시키는 것을 보장하지는 않습니다. 사용설명서의 내용은 제품의 업그레이드나 수정에 따라 그 내용이 예고 없이 변경될 수 있으며, 내용상의 오류가 없음을 보장하지 아니합니다.

Trademarks

JEUS® is registered trademark of TmaxSoft Co., Ltd.

JEUS®는 TmaxSoft Co., Ltd.의 등록 상표입니다.

Java and Solaris are registered trademarks of Oracle Corporation and its subsidiaries and affiliates.

Java, Solaris는 Oracle Corporation 및 그 자회사, 관계회사의 등록 상표입니다.

Microsoft, Windows, and Windows NT are registered trademarks or trademarks of Microsoft Corporation.

Microsoft, Windows, Windows NT는 Microsoft Corporation의 등록 상표 또는 상표입니다.

HP-UX is a registered trademark of Hewlett Packard Enterprise Company.

HP-UX는 Hewlett Packard Enterprise Company의 등록 상표입니다.

AIX is a registered trademark of International Business Machines Corporation.

AIX는 International Business Machines Corporation의 등록 상표입니다.

UNIX is a registered trademark of X/Open Company, Ltd.

UNIX는 X/Open Company, Ltd.의 등록 상표입니다.

Linux is a registered trademark of Linus Torvalds.

Linux는 Linus Torvalds의 등록 상표입니다.

Other products and company names are trademarks or registered trademarks of their respective owners.

기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상호, 상표, 또는 등록 상표입니다.

The names of companies, systems, and products mentioned in this manual may not necessarily be indicated with a trademark symbol (TM, ®).

본 사용설명서에 기재된 회사, 시스템, 제품 이름 등에 반드시 상표 표시 (TM, ®)를 하지는 않습니다.

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

발행일: 2017-01-31

소프트웨어 버전: JEUS 8

안내서 버전: v2.1.1


내용 목차

안내서에 대하여
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 서블릿 구현
2.5.4. 맞춤 프로토콜 코드를 위한 TCP 리스너 설정
2.5.5. TCP 클라이언트 구현
2.5.6. TCP 클라이언트 컴파일과 실행
2.6. HTTP/2 사용
2.6.1. HTTP/2 사용 설정
2.6.2. Server Push
2.7. 리스너 튜닝
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 Graceful Reloading
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 UserProperties 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] 웹 엔진 모니터링 - 정보 조회
[그림 1.4] ListSession - Manager 선택
[그림 1.5] ListSession - Manager 결과
[그림 1.6] JEUS 디렉터리 구조에서의 웹 엔진
[그림 1.7] 설정 적용 - Activate Changes
[그림 1.8] 고급 선택사항
[그림 1.9] 모니터링 - 설정 메뉴 이동
[그림 1.10] 모니터링 - 설정
[그림 1.11] 모니터링 - 설정 적용 결과
[그림 1.12] 기본 오류 페이지 - 설정
[그림 1.13] 기본 오류 페이지 - 설정 적용 결과
[그림 1.14] 오류 발생할 때 Stack Trace 첨부 - 설정
[그림 1.15] 오류 발생하는 경우 Stack Trace 첨부 - 설정 적용 결과
[그림 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] 유저 로그 - 핸들러 추가 확인
[그림 1.29] 유저 로그 - 핸들러 추가 적용 결과
[그림 1.30] Async Servlet 타임아웃 처리 - Async Timeout Min Threads 설정
[그림 1.31] Async Servlet 타임아웃 처리 - Async Timeout Min Threads 설정 적용 결과
[그림 1.32] 웹 엔진 프로퍼티 - 설정
[그림 1.33] 웹 엔진 프로퍼티 - 설정 적용 결과
[그림 1.34] 웹 공격 대응 - 메뉴 이동
[그림 1.35] 웹 공격 대응 - 고급 선택사항 설정
[그림 1.36] 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] HTTP 리스너 추가 및 수정 - 일반 설정
[그림 2.14] HTTP 리스너 추가 및 수정 - Thread Pool 설정
[그림 2.15] HTTP 리스너 추가 및 수정 - 고급 선택사항 설정
[그림 2.16] HTTP 리스너 추가 및 수정 - 추가 확인
[그림 2.17] HTTP 리스너 삭제 - 삭제 확인
[그림 2.18] TCP 리스너 추가 및 수정 - 일반 설정
[그림 2.19] TCP 리스너 추가 및 수정 - 고급 선택사항 설정
[그림 2.20] TCP 리스너 추가 및 수정 - 추가 확인
[그림 2.21] TCP 리스너 삭제 - 삭제 확인
[그림 2.22] WebtoB 커넥터 추가 및 수정 - 기본 설정
[그림 2.23] WebtoB 커넥터 추가 및 수정 - 연결 설정
[그림 2.24] WebtoB 커넥터 추가 및 수정 - Thread Pool 설정
[그림 2.25] WebtoB 커넥터 추가 및 수정 - 고급 선택사항 설정
[그림 2.26] WebtoB 커넥터 추가 및 수정 - 추가 확인
[그림 2.27] WebtoB 커넥터 삭제 - 삭제 확인
[그림 2.28] Tmax 커넥터 추가 및 수정 - 기본 설정
[그림 2.29] Tmax 커넥터 추가 및 수정 - 고급 선택사항 설정
[그림 2.30] Tmax 커넥터 추가 및 수정 - 추가 확인
[그림 2.31] Tmax 커넥터 삭제 - 삭제 확인
[그림 2.32] 자동 Thread Pool 관리 설정 - Thread State Notify 설정
[그림 2.33] 소규모 웹 사이트에서의 부하 분산 구조
[그림 2.34] 부하 분산 서버 구조 - 2대의 WebtoB가 각각 2대의 웹 엔진에 연결된 경우
[그림 2.35] 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] Request Encoding 설정 예제 : <<jeus-web-dd.xml>>
[예 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 인터페이스의 상세 내용 : <<AccessLoggerFilter.java>>
[예 1.9] 필터 클래스 정의 예제 : <<SimpleAccessLoggerFilter>>
[예 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 서블릿 구현 예 : <<SampleTCPServlet.java>>
[예 2.6] TCP 핸들러 DD : <<web.xml>>
[예 2.7] TCP 클라이언트 구현 예 : <<Client.java>>
[예 2.8] Server Push 사용 예 : <<ServerPushServlet.java>>
[예 3.1] 웹 컨텍스트 설정 파일 : <<jeus-web-dd.xml>>
[예 3.2] Shared Library Reference 추가 : <<libraries.xml>>
[예 3.3] 정적 리소스를 처리하는 서블릿 매핑 : <<web.xml>>
[예 3.4] Redirect Location 보안 설정 인터페이스: <<RedirectStrategy>>
[예 3.5] Redirect Location 보안 설정 구현 예: <<RejectCrlfRedirectStrategy>>
[예 3.6] Redirect Location 보안 설정 : <<jeus-web-dd.xml>>
[예 3.7] 보안 Role 매핑 : <<web.xml>>
[예 3.8] 보안 Role 매핑 : <<jeus-web-dd.xml>>
[예 3.9] Symbolc Reference 매핑 : <<web.xml>>
[예 3.10] Symbolc Reference 매핑 : <<jeus-web-dd.xml>>
[예 3.11] <async-config> 설정 : <<jeus-web-dd.xml>>
[예 3.12] 잘못된 비동기식 처리 프로그래밍 작성 예 (1) : <<WrongAsyncServlet1.java>>
[예 3.13] 잘못된 비동기식 처리 프로그래밍 작성 예 (2) : <<WrongAsyncServlet2.java>>
[예 3.14] 잘못된 비동기식 처리 프로그래밍 작성 예 (3) : <<WrongAsyncServlet3.java>>
[예 4.1] 웹 컨텍스트 설정 파일 : <<jeus-web-dd.xml>>
[예 4.2] JSP 하위 호환성을 위한 웹 컨텍스트 설정 : <<jeus-web-dd.xml>>
[예 6.1] WebSocket UserProperties Failover 설정 : <<jeus-web-dd.xml>>
[예 6.2] 웹 컨텍스트 설정 파일 : <<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>>