JEUS Web Engine 안내서 

JEUS 21

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의 등록 상표입니다.

Noto is a trademark of Google Inc. Noto fonts are open source. All Noto fonts are published under the SIL Open Font License, Version 1.1. (https://www.google.com/get/noto/)

Noto는 Google Inc.의 상표입니다. Noto 글꼴은 오픈 소스입니다. 모든 Noto 글꼴은 SIL Open Font License, 버전 1.1에 따라 게시됩니다. (https://www.google.com/get/noto/)

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, ®)를 하지는 않습니다.

안내서 정보

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

발행일: 2022-09-02

소프트웨어 버전: JEUS 21

안내서 버전: v2.1.1.0


내용 목차

안내서에 대하여
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.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. 스레드 풀
4.1. 개요
4.2. 기본 구조
4.3. 설정
4.4. 자동 Thread Pool 관리 설정(Thread 상태 통보)
4.5. 규칙
5. JSP 엔진
5.1. 개요
5.2. Apache Tomcat Jasper
5.3. JSP 엔진 기능
5.3.1. JSP Graceful Reloading
5.3.2. JSP 프리컴파일
5.3.3. 메모리에서의 JSP 컴파일 및 실행 기능
5.4. JSP 엔진 설정
5.4.1. 웹 엔진 레벨에서 설정
5.4.2. jeus-web-dd.xml 설정
5.4.3. JSP 하위 호환성을 위한 웹 컨텍스트 레벨의 옵션 설정
5.4.4. jarscan.properties 파일 설정
6. 가상 호스트
6.1. 개요
6.2. 웹 엔진과 가상 호스트
6.2.1. ServletContext 객체와 가상 호스트
6.3. 가상 호스트를 통한 웹 컨텍스트 요청
6.3.1. URL 매칭 예제
6.3.2. URL 매칭 순서
6.4. 가상 호스트 설정
6.4.1. 추가
6.4.2. 수정
6.4.3. 삭제
7. WebSocket 컨테이너
7.1. 개요
7.2. 제약 사항
7.3. WebSocket 컨테이너 기능
7.3.1. WebSocket UserProperties Failover
7.3.2. 기타
7.4. WebSocket 컨테이너 설정
7.5. Spring WebSocket 사용
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. 클래스 동적 반영
9.1. 개요
9.2. 기본 설정 및 동작
9.2.1. 서버 설정
9.2.2. 애플리케이션 설정
9.2.3. JEUS HotSwap으로 지원 가능한 애플리케이션 및 변환
9.2.4. JEUS HotSwap 제약 사항
10. 밸브와 필터
10.1. 개요
10.2. 밸브의 개념
10.3. JEUS 제공 valve 설정
10.3.1. 메소드 제한 옵션 설정
10.3.2. remote host/adderss valve 설정
10.3.3. URL rewrite 옵션 설정
10.4. 사용자 정의 밸브
10.5. JEUS 제공 filter 설정
10.5.1. samesite 제한 옵션 설정
10.5.2. Forwarded Header 옵션 설정
11. 따라하기
색인

그림 목차

[그림 1.1] 웹 엔진의 구성 요소
[그림 1.2] 웹 엔진 모니터링 - 메뉴 이동 및 서버 선택
[그림 1.3] 웹 엔진 정보 화면 - [WEB STATISTICS] 탭
[그림 1.4] 웹 엔진 정보 화면 - [LIST SESSION] 탭
[그림 1.5] 웹 엔진 설정화면 - 고급 선택사항
[그림 1.6] 웹 엔진 모니터링 설정 (1)
[그림 1.7] 웹 엔진 모니터링 설정 (2)
[그림 1.8] 웹 엔진 모니터링 설정 (3)
[그림 1.9] 웹 엔진 모니터링 설정 (4)
[그림 1.10] 기본 오류 페이지 설정
[그림 1.11] 오류 발생의 경우 Stack Trace 첨부 설정
[그림 1.12] 웹 엔진 인코딩 설정
[그림 1.13] 웹 엔진 응답 헤더 설정
[그림 1.14] 웹 엔진 쿠키 정책 설정
[그림 1.15] 웹 엔진 액세스 로그 기본 설정 (1)
[그림 1.16] 웹 엔진 액세스 로그 기본 설정 (2)
[그림 1.17] 유저 로그 설정 (1)
[그림 1.18] 유저 로그 설정 (2)
[그림 1.19] 유저 로그 설정 (3)
[그림 1.20] 유저 로그 - 핸들러 추가 확인
[그림 1.21] Async Servlet 타임아웃 처리 설정
[그림 1.22] 웹 엔진 레벨의 프로퍼티 설정
[그림 1.23] 웹 공격 대응 설정 (1)
[그림 1.24] 웹 공격 대응 설정 (2)
[그림 1.25] 특정 URL 패턴의 HTTP 요청 방지
[그림 2.1] 웹 엔진의 리스너
[그림 2.2] 웹 엔진의 커넥터
[그림 2.3] AJP 리스너 추가 및 수정 (1)
[그림 2.4] AJP 리스너 추가 및 수정 (2)
[그림 2.5] AJP 리스너 추가 및 수정 (3)
[그림 2.6] AJP 리스너 삭제 (1)
[그림 2.7] AJP 리스너 삭제 (2)
[그림 2.8] HTTP 리스너 추가 및 수정
[그림 2.9] TCP 리스너 추가 및 수정
[그림 2.10] WebtoB 커넥터 추가 및 수정
[그림 2.11] Tmax 커넥터 추가 및 수정
[그림 2.12] 소규모 웹 사이트에서의 부하 분산 구조
[그림 2.13] 부하 분산 서버 구조 - 2대의 WebtoB가 각각 2대의 웹 엔진에 연결된 경우
[그림 2.14] WebtoB 커넥터 설정 상태
[그림 3.1] 웹 컨텍스트 모니터링 - 애플리케이션 조회
[그림 3.2] 웹 컨텍스트 모니터링 - 웹 애플리케이션 선택
[그림 3.3] 웹 컨텍스트 모니터링 - 웹 애플리케이션 세부 정보 조회
[그림 3.4] 웹 애플리케이션 리로드
[그림 3.5] 웹 애플리케이션 thread-info
[그림 4.1] 자동 Thread Pool 관리 설정 - Thread State Notify 설정
[그림 5.1] JSP 엔진 설정 - 메뉴 이동
[그림 5.2] JSP 엔진 설정 - 기본 정보 설정
[그림 6.1] 가상 호스트의 이용 패턴
[그림 6.2] 웹 엔진과 가상 호스트, 웹 컨텍스트 간의 유효한 관계의 예
[그림 6.3] 가상 호스트 추가 (1)
[그림 6.4] 가상 호스트 추가 (2)
[그림 6.5] 가상 호스트 추가 - 추가 적용 결과
[그림 6.6] 가상 호스트 수정 - 기본 정보 수정
[그림 6.7] 가상 호스트 수정 - Access Log 추가 설정
[그림 6.8] 가상 호스트 수정 - pipeline 추가 설정
[그림 6.9] 가상 호스트 삭제 - 삭제 확인
[그림 8.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 보안 설정 인터페이스
[예 3.5] Redirect Location 보안 설정 구현 예
[예 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> 설정98ㅔㅐ : <<jeus-web-dd.xml>>
[예 3.12] 잘못된 비동기식 처리 프로그래밍 작성 예 (1) : <<WrongAsyncServlet1.java>>
[예 3.13] 잘못된 비동기식 처리 프로그래밍 작성 예 (2) : <<WrongAsyncServlet2.java>>
[예 3.14] 잘못된 비동기식 처리 프로그래밍 작성 예 (3) : <<WrongAsyncServlet3.java>>
[예 4.1] WebContainer 레벨의 스레드 풀 : <<domain.xml>>
[예 4.2] VirtualHost 레벨의 스레드 풀 : <<domain.xml>>
[예 4.3] Context 레벨의 스레드 풀 : <<jeus-web-dd.xml>>
[예 5.1] 웹 컨텍스트 설정 파일 : <<jeus-web-dd.xml>>
[예 5.2] JSP 하위 호환성을 위한 웹 컨텍스트 설정 : <<jeus-web-dd.xml>>
[예 5.3] 불필요한 tld 스캔을 막기 위한 jarscan.properties 파일 설정 : <<jarscan.properies>>
[예 7.1] WebSocket UserProperties Failover 설정 : <<jeus-web-dd.xml>>
[예 7.2] 웹 컨텍스트 설정 파일 : <<jeus-web-dd.xml>>
[예 7.3] 웹 컨텍스트 설정 파일 : <<jeus-web-dd.xml>>
[예 7.4] 스프링 컨텍스트 설정 파일 : <<spring-context.xml>>
[예 8.1] <cache> 태그 설정 : <<jeuscache.tld>>
[예 8.2] <jeus:cache> 사용 예제 : <<cache.jsp>>
[예 8.3] jsp:inclue를 이용한 <jeus:cache> 사용 예제 : <<main.jsp>>
[예 8.4] 필터 설정 : <<web.xml>>
[예 9.1] Jeus HotSwap설정 : <<startDomainAdminServer>>
[예 9.2] Jeus HotSwap 설정 : <<startManagedServer>>
[예 9.3] Auto Reload 설정 : <<jeus-web-dd.xml>>
[예 10.1] 웹 컨텍스트 설정 파일 : <<jeus-web-dd.xml>>
[예 10.2] 서버 설정 파일 : <<domain.xml>>
[예 10.3] 메소드 제약 옵션 밸브 추가 : <<jeus-web-dd.xml>>
[예 10.4] remote address 밸브 추가 : <<jeus-web-dd.xml>>
[예 10.5] remote host 밸브 추가 : <<jeus-web-dd.xml>>
[예 10.6] rewrite 밸브 추가 : <<jeus-web-dd.xml>>
[예 10.7] response header에 test:test를 추가하는 예제
[예 10.8] samesite 제한 옵션 필터 추가 : <<web.xml>>
[예 10.9] Forwarded Header 옵션 필터 추가 : <<web.xml>>