책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/tomcat7)
[ 요약 ]
(2013년 9월 초판과 동일한 내용의 도서입니다.)
이 책은 톰캣 서버 관리자가 반드시 알아야 할 내용을 다룬다. 톰캣 7의 성능 튜닝, 다양한 설정 방법, 로깅, 모니터링, 마이그레이션 등 톰캣에 관한 모든 내용을 설명한다. 서버 관리자는 지금까지 자신이 알고 있던 지식을 시험해 볼 수 있는 동시에 새로운 지식도 쌓을 수 있을 것이다. 이 책에서는 톰캣 7을 다운로드하는 방법부터 설치하고 설정하는 방법 등 기초적인 내용도 자세히 설명하고 있어 톰캣을 처음 접하는 독자들도 도움을 얻을 수 있다.
[ 이 책에서 다루는 내용 ]
◆ 윈도우/리눅스 환경에 톰캣 7을 설치하는 과정과 설치 과정에서 발생한 문제 해결 방법
◆ 여러 애플리케이션을 배포하는 방법과 배포 과정에서 발생하는 문제 해결 방법
◆ 제품 환경의 모범 사례를 구현하는 방법과 일상의 작업량을 줄일 수 있는 트릭
◆ 아파치 같은 프론트엔드 웹 서버를 이용한 가용성 높은 아키텍처 구성(부하 배분과 클러스터링 설정) 방법
◆ 톰캣 성능 튜닝 전문가가 되기 위한 노하우
◆ 이전 버전의 톰캣을 톰캣 7으로 완벽하게 업그레이드
◆ 개발 환경/QA 환경/준비 환경/제품 환경의 톰캣 설정과 유지보수 팁
◆ 스레드 덤프 분석, JVM 모니터링, 데이터베이스와 OS 관련 문제, 톰캣 7 문제 진단 방법
[ 이 책의 대상 독자 ]
J2EE 관리자, 마이그레이션 관리자, 기술 아키텍트, 웹 호스팅 도메인 프로젝트 관리자, 아파치 톰캣 7에 관심이 있는 사람이라면 이 책에서 유용한 정보를 얻을 수 있다. 뿐만 아니라 톰캣 7을 설치, 설정, 관리해야 한다면 도움을 받을 수 있을 것이다.
[ 이 책의 구성 ]
이 책은 세 단계의 생명주기로 구성돼 있다. 첫 번째 단계에서는 톰캣 7을 다양한 OS에 설치와 설정, 그리고 JDBC, 포트, 배포 등의 다양한 설정을 다룬다.
두 번째 단계에서는 기업 애플리케이션 설정과 높은 가용성 아키텍처(클러스터링과 부하 배분)와 관련한 내용을 설명한다. 가장 핵심이 되는 세 번째 단계에서는 중요한 문제를 처리하는 방법, 성능을 튜닝하는 방법, 개발/QA/준비/제품 등 다양한 환경의 모범 사례를 살펴본다.
이 책을 통해 웹 기술 분야에서 톰캣 7을 더 폭넓게 활용할 수 있는 시야를 갖게 될 것이며, 아파치 톰캣 7을 이용해 톰캣 7의 성능을 최적화하는 기술도 습득할 수 있다.
1장, ‘톰캣 7 설치’에서는 아파치 톰캣의 역사와 톰캣 7에서 새로 추가된 기능을 설명한다. 톰캣 7을 윈도우, 리눅스 운영체제에 설치하는 방법을 단계별로 확인하며 설치 과정에서 흔히 발생하는 문제와 해결 방법도 살펴본다.
2장, ‘설정과 배포’에서는 오라클, MySQL, PostgreSQL 등의 다양한 데이터베이스의 데이터소스 설정방법을 포함해, 애플리케이션을 이용한 컨텍스트 경로 생성 등 다양한 톰캣 설정을 학습한다. 톰캣 관리자를 이용해 샘플 애플리케이션을 배포하는 방법 등 다양한 배포방법을 살펴보며, 배포와 관련해 발생하는 공통적인 문제를 해결 방법도 확인할 수 있다.
3장, ‘성능 튜닝’에서는 아파치 톰캣 7에 적용할 수 있는 다양한 성능향상 방법과 기법을 설명한다. 커넥터, JVM 성능 튜닝, OS 파라미터 최적화 등을 설정하는 방법을 단계별로 학습한다.
4장, ‘아파치 웹 서버와 톰캣 통합’에서는 아파치/IIS를 톰캣 7과 통합하는 방법과 mod_jk, mod_proxy 등의 다양한 컴포넌트를 통합하는 방법뿐 아니라 통합 과정에서 실제로 발생할 수 있는 문제와 해결 방법을 살펴본다.
5장, ‘톰캣 7 보안’에서는 카탈리나 정책, 시스템 수준 정책 등 톰캣 7의 다양한 정책과 기능을 설명한다. SSL 같은 보안을 활성화하는 방법과 장점, 설정을 변경하고 SSL을 구현함으로써 제품 환경에서 동작하는 톰캣 7을 안전하게 유지하는 업계의 모범 사례 등도 살펴본다.
6장, ‘톰캣 7 로깅’에서는 톰캣 7의 로그를 활성화하는 다양한 방법(log4j, JULI)을 살펴본다. 로그를 분석하는 모범 사례, 팁, 트릭 등도 설명한다.
7장, ‘톰캣 문제 해결’에서는 애플리케이션 관리자와 웹 관리자가 실제 환경에서 겪을 수 있는 다양한 문제, 다양한 기법, 그리고 여러 가지 에러와 해결책을 이용해 제품 환경에서 이들 문제를 회피하는 방법, 스레드 덤프를 분석하는 데 사용하는 스레드 덤프 분석 방법과 도구, 실제 문제를 해결하는 방법, 웹 서버 벤치마킹 등을 설명한다.
8장, ‘톰캣 7 모니터와 관리’에서는 톰캣 7을 모니터링하는 다양한 프로세스, 톰캣 관리자와 JConsole을 사용하는 컴포넌트, 다양한 모니터링 방법, 톰캣 7을 모니터링하는 방법, JConsole을 사용하는 방법 등을 설명한다.
9장, ‘톰캣 7 클러스터링’에서는 톰캣 7의 클러스터링과 구현 기법을 설명한다. 클러스터링 구조, 수평 클러스터와 수직 클러스터의 장점, 그리고 이들 클러스터를 톰캣 7에 구현하는 방법, 클러스터 검증 방법을 학습한다.
10장, ‘톰캣 업그레이드’에서는 톰캣 6을 톰캣 7으로 업그레이드하는 다양한 기법, 업그레이드 생명주기와 관련한 업그레이드 과정, 톰캣 7의 설정 업그레이드, 데이터소스 설정을 설명하며 업그레이드 과정에서 사용하는 다양한 ITIL 프로세스도 살펴본다.
11장, ‘아파치 톰캣 7 고급 설정’에서는 톰캣 7의 고급 설정과 최적화 파라미터를 설명한다. 특히 가상 환경, 개발/QA/준비/제품 환경의 기능, 서비스로 동작하는 톰캣, 특권이 없는 사용자로 톰캣 실행하는 방법 등의 핵심 내용이 들어있다.
(https://github.com/AcornPublishing/tomcat7)
[ 요약 ]
(2013년 9월 초판과 동일한 내용의 도서입니다.)
이 책은 톰캣 서버 관리자가 반드시 알아야 할 내용을 다룬다. 톰캣 7의 성능 튜닝, 다양한 설정 방법, 로깅, 모니터링, 마이그레이션 등 톰캣에 관한 모든 내용을 설명한다. 서버 관리자는 지금까지 자신이 알고 있던 지식을 시험해 볼 수 있는 동시에 새로운 지식도 쌓을 수 있을 것이다. 이 책에서는 톰캣 7을 다운로드하는 방법부터 설치하고 설정하는 방법 등 기초적인 내용도 자세히 설명하고 있어 톰캣을 처음 접하는 독자들도 도움을 얻을 수 있다.
[ 이 책에서 다루는 내용 ]
◆ 윈도우/리눅스 환경에 톰캣 7을 설치하는 과정과 설치 과정에서 발생한 문제 해결 방법
◆ 여러 애플리케이션을 배포하는 방법과 배포 과정에서 발생하는 문제 해결 방법
◆ 제품 환경의 모범 사례를 구현하는 방법과 일상의 작업량을 줄일 수 있는 트릭
◆ 아파치 같은 프론트엔드 웹 서버를 이용한 가용성 높은 아키텍처 구성(부하 배분과 클러스터링 설정) 방법
◆ 톰캣 성능 튜닝 전문가가 되기 위한 노하우
◆ 이전 버전의 톰캣을 톰캣 7으로 완벽하게 업그레이드
◆ 개발 환경/QA 환경/준비 환경/제품 환경의 톰캣 설정과 유지보수 팁
◆ 스레드 덤프 분석, JVM 모니터링, 데이터베이스와 OS 관련 문제, 톰캣 7 문제 진단 방법
[ 이 책의 대상 독자 ]
J2EE 관리자, 마이그레이션 관리자, 기술 아키텍트, 웹 호스팅 도메인 프로젝트 관리자, 아파치 톰캣 7에 관심이 있는 사람이라면 이 책에서 유용한 정보를 얻을 수 있다. 뿐만 아니라 톰캣 7을 설치, 설정, 관리해야 한다면 도움을 받을 수 있을 것이다.
[ 이 책의 구성 ]
이 책은 세 단계의 생명주기로 구성돼 있다. 첫 번째 단계에서는 톰캣 7을 다양한 OS에 설치와 설정, 그리고 JDBC, 포트, 배포 등의 다양한 설정을 다룬다.
두 번째 단계에서는 기업 애플리케이션 설정과 높은 가용성 아키텍처(클러스터링과 부하 배분)와 관련한 내용을 설명한다. 가장 핵심이 되는 세 번째 단계에서는 중요한 문제를 처리하는 방법, 성능을 튜닝하는 방법, 개발/QA/준비/제품 등 다양한 환경의 모범 사례를 살펴본다.
이 책을 통해 웹 기술 분야에서 톰캣 7을 더 폭넓게 활용할 수 있는 시야를 갖게 될 것이며, 아파치 톰캣 7을 이용해 톰캣 7의 성능을 최적화하는 기술도 습득할 수 있다.
1장, ‘톰캣 7 설치’에서는 아파치 톰캣의 역사와 톰캣 7에서 새로 추가된 기능을 설명한다. 톰캣 7을 윈도우, 리눅스 운영체제에 설치하는 방법을 단계별로 확인하며 설치 과정에서 흔히 발생하는 문제와 해결 방법도 살펴본다.
2장, ‘설정과 배포’에서는 오라클, MySQL, PostgreSQL 등의 다양한 데이터베이스의 데이터소스 설정방법을 포함해, 애플리케이션을 이용한 컨텍스트 경로 생성 등 다양한 톰캣 설정을 학습한다. 톰캣 관리자를 이용해 샘플 애플리케이션을 배포하는 방법 등 다양한 배포방법을 살펴보며, 배포와 관련해 발생하는 공통적인 문제를 해결 방법도 확인할 수 있다.
3장, ‘성능 튜닝’에서는 아파치 톰캣 7에 적용할 수 있는 다양한 성능향상 방법과 기법을 설명한다. 커넥터, JVM 성능 튜닝, OS 파라미터 최적화 등을 설정하는 방법을 단계별로 학습한다.
4장, ‘아파치 웹 서버와 톰캣 통합’에서는 아파치/IIS를 톰캣 7과 통합하는 방법과 mod_jk, mod_proxy 등의 다양한 컴포넌트를 통합하는 방법뿐 아니라 통합 과정에서 실제로 발생할 수 있는 문제와 해결 방법을 살펴본다.
5장, ‘톰캣 7 보안’에서는 카탈리나 정책, 시스템 수준 정책 등 톰캣 7의 다양한 정책과 기능을 설명한다. SSL 같은 보안을 활성화하는 방법과 장점, 설정을 변경하고 SSL을 구현함으로써 제품 환경에서 동작하는 톰캣 7을 안전하게 유지하는 업계의 모범 사례 등도 살펴본다.
6장, ‘톰캣 7 로깅’에서는 톰캣 7의 로그를 활성화하는 다양한 방법(log4j, JULI)을 살펴본다. 로그를 분석하는 모범 사례, 팁, 트릭 등도 설명한다.
7장, ‘톰캣 문제 해결’에서는 애플리케이션 관리자와 웹 관리자가 실제 환경에서 겪을 수 있는 다양한 문제, 다양한 기법, 그리고 여러 가지 에러와 해결책을 이용해 제품 환경에서 이들 문제를 회피하는 방법, 스레드 덤프를 분석하는 데 사용하는 스레드 덤프 분석 방법과 도구, 실제 문제를 해결하는 방법, 웹 서버 벤치마킹 등을 설명한다.
8장, ‘톰캣 7 모니터와 관리’에서는 톰캣 7을 모니터링하는 다양한 프로세스, 톰캣 관리자와 JConsole을 사용하는 컴포넌트, 다양한 모니터링 방법, 톰캣 7을 모니터링하는 방법, JConsole을 사용하는 방법 등을 설명한다.
9장, ‘톰캣 7 클러스터링’에서는 톰캣 7의 클러스터링과 구현 기법을 설명한다. 클러스터링 구조, 수평 클러스터와 수직 클러스터의 장점, 그리고 이들 클러스터를 톰캣 7에 구현하는 방법, 클러스터 검증 방법을 학습한다.
10장, ‘톰캣 업그레이드’에서는 톰캣 6을 톰캣 7으로 업그레이드하는 다양한 기법, 업그레이드 생명주기와 관련한 업그레이드 과정, 톰캣 7의 설정 업그레이드, 데이터소스 설정을 설명하며 업그레이드 과정에서 사용하는 다양한 ITIL 프로세스도 살펴본다.
11장, ‘아파치 톰캣 7 고급 설정’에서는 톰캣 7의 고급 설정과 최적화 파라미터를 설명한다. 특히 가상 환경, 개발/QA/준비/제품 환경의 기능, 서비스로 동작하는 톰캣, 특권이 없는 사용자로 톰캣 실행하는 방법 등의 핵심 내용이 들어있다.
목차
목차
- 1장 톰캣 7 설치
- 톰캣의 역사
- 톰캣 지원 매트릭스
- 아파치 톰캣 7의 기능과 개선사항
- 웹 애플리케이션 메모리 누수 감지와 방지
- 서블릿 3.0
- 개선된 로깅
- 별칭
- 톰캣 7 설치
- 톰캣 소프트웨어를 다운로드하는 방법
- 바이너리 패키지
- RPM/exe
- 소스
- 톰캣 7 설치 요구사항
- 자바 설치
- 아파치 톰캣 7 설치
- 윈도우 환경에서 톰캣 7 설치
- 리눅스 환경에서 톰캣 7 설치하기
- 톰캣 서비스를 시작하고 종료하는 방법
- 윈도우에서 서비스 제어하는 방법
- 리눅스에서 서비스 제어하는 방법
- 스타트업 스크립트
- 셧다운 스크립트
- 톰캣 상태 확인
- 톰캣 소프트웨어를 다운로드하는 방법
- 설치 과정에서 자주 발생하는 문제와 해결방법
- 에러: 자바 바이너리 권한 거부
- 에러: 톰캣에서 JAVA_HOME을 찾을 수 없다
- 에러: 포트가 이미 사용 중이라는 에러가 로그로 출력됨
- 요약
- 톰캣의 역사
- 2장 설정과 배포
- 설정 파일과 사용법
- 톰캣 7 설정하기
- DataSource 설정
- JDBC
- JNDI
- DataSource
- DataSource 설정
- 시중에서 흔히 볼 수 있는 데이터베이스의 데이터소스 비교
- 톰캣 관리자 설정
- 톰캣 관리자 활성화
- 컨텍스트 경로
- 컨텍스트 경로 활성화
- 톰캣 관리자 설정
- 톰캣 7에 배포하기
- 웹아카이브(WebArchive)의 구조
- 아카이브 파일
- 웹아카이브(WebArchive)의 구조
- 배포 유형
- 톰캣 7에서 애플리케이션을 배포하는 방법
- 톰캣의 배포, 설정 과정에서 흔히 발생하는 문제
- 요약
- 3장 성능 튜닝
- 톰캣 7의 성능 튜닝
- 왜 성능을 튜닝해야 하는가
- 성능 튜닝 시작하기
- 톰캣 컴포넌트 튜닝
- 톰캣 7의 커넥터 종류
- 자바 HTTP 커넥터
- 자바 AJP 커넥터
- APR (AJP/HTTP) 커넥터
- 톰캣 7의 스레드 최적화
- 공유 스레드 풀(공유된 실행자)
- 전용 스레드 풀
- 공유 스레드 풀과 전용 스레드 풀의 비교
- maxThreads
- maxKeepAlive
- 톰캣 7의 커넥터 종류
- JVM 튜닝
- 왜 톰캣의 JDK를 튜닝해야 하는가
- JMAP(메모리 맵)
- 톰캣 7의 힙 크기를 증가시키는 방법
- 가비지 콜렉션
- JVM 옵션
- 표준 옵션
- 비표준 옵션
- GC 로그에 표시된 파라미터
- SurvivorRatio
- 왜 톰캣의 JDK를 튜닝해야 하는가
- OS 튜닝
- 요약
- 톰캣 7의 성능 튜닝
- 4장 아파치 웹 서버와 톰캣 통합
- 사용자 요청 흐름(웹/애플리케이션 수준)
- 왜 아파치 HTTP 서버를 사용하는가
- 아파치 HTTP 설치
- 윈도우에서 아파치 HTTP 설치하기
- 아파치 서비스를 확인하는 방법
- 리눅스(비 DOS 환경)에 아파치 HTTP 설치하기
- 아파치 포터블 런타임
- 윈도우에서 아파치 HTTP 설치하기
- 아파치 Jserv 프로토콜
- mod_jk 설치하고 설정하기
- mod_jk 설치
- 아파치에서 mod_jk 설정하기
- mod_proxy 설정
- modjk와 modproxy 비교
- mod_jk 설치하고 설정하기
- 톰캣 7과 IIS 통합
- 요구사항
- 설치 과정
- 통합 과정에서 일반적으로 발생하는 문제와 해결 방법
- 요약
- 5장 톰캣 7 보안
- 톰캣 관리자
- 톰캣 보안 권한
- catalina.properties
- catalina.policy
- 시스템 코드 권한
- 카탈리나 코드 권한(톰캣 코어 권한)
- 웹 애플리케이션 권한
- tomcat-users.xml
- server.xml
- 톰캣 관리자 활성화
- 톰캣 관리자를 활성화하는 방법
- 제품 환경에 맞는 톰캣 7 보안
- 톰캣 설정
- 커넥터 포트
- 톰캣 애플리케이션 감량
- 핫 배포 비활성화
- 톰캣 이외의 설정
- 별도의 사용자로 서비스
- 방화벽
- 비밀번호
- 톰캣 설정
- 톰캣 7의 SSL 설정
- SSL 인증서 종류
- SSL 설치 과정
- 요약
- 6장 톰캣 7 로깅
- 줄리
- 로거, 어펜더, 레이아웃
- 톰캣 7의 로깅 종류
- 애플리케이션 로그
- 서버 로그
- 콘솔 로그
- 액세스 로그
- 호스트 관리자
- 톰캣 7의 다양한 로그 수준
- Log4j
- Log4j의 다양한 로그 수준
- Log4j 설정 방법
- 로그 수준 매핑
- Log4j의 다양한 로그 수준
- 톰캣 7의 밸브
- 로그 분석
- 로그 분석에 유용한 명령어
- 요약
- 7장 톰캣 문제 해결
- 웹 관리자가 공통적으로 겪는 문제 영역
- 문제 해결 방법
- 애플리케이션이 느려지는 문제
- 톰캣 7에서 느림 문제를 해결하는 방법
- 데이터베이스 수준에서 문제 해결
- 애플리케이션이 느려지는 문제
- 톰캣 7에서 스레드 덤프 만드는 방법
- Kill 명령어를 이용한 스레드 덤프
- Jstack을 이용한 스레드 덤프
- 톰캣 인스턴스의 스레드 덤프 분석 방법
- 사무라이로 스레드 덤프 분석하기
- 스레드 덤프 분석기를 이용해 스레드 덤프 분석하기
- 에러와 해결책
- JVM(메모리) 문제
- 데이터베이스 관련 문제
- 웹 서버 벤치마킹
- 아파치벤치
- 제이미터
- 요약
- 8장 톰캣 7 모니터와 관리
- 다양한 모니터링 방법
- 웹 애플리케이션, 데이터베이스 서버에 모니터링 설정
- 톰캣 7의 톰캣 관리자
- 톰캣 7 모니터링
- 톰캣 7 서버 상태 요약
- 톰캣 7 서버의 모든 상태
- 톰캣 7 서버 상태 요약
- 톰캣 7의 JConsole 설정
- 원격 JMX 활성화
- JConsole 연결 방법
- JConsole의 다양한 탭과 기능
- 메모리 개요
- 스레드 개요
- 개요와 VM 요약
- MBeans
- 요약
- 9장 톰캣 7 클러스터링
- 클러스터란 무엇인가
- 클러스터링의 장점
- 클러스터링의 단점
- 클러스터링 아키텍처
- 수직 클러스터링
- 수직 클러스터링의 장점
- 수직 클러스터링의 단점
- 수평 클러스터링
- 수평 클러스터링의 장점
- 수평 클러스터링의 단점
- 수직 클러스터링
- 아파치 톰캣 7의 수직 클러스터링
- 톰캣 인스턴스 설치
- 수직 클러스터 설정
- 인스턴스 1 설정
- 인스턴스2 설정
- 아파치 웹 서버를 수직 클러스터로 설정
- 아파치 톰캣 7의 수평 클러스터링
- 톰캣 인스턴스 설치
- 클러스터 설정
- 인스턴스 1 설정
- 인스턴스 2 설정
- 아파치 웹 서버를 수평 클러스터로 설정
- 클러스터된 인스턴스 테스트
- 톰캣 클러스터링 모니터링
- 요약
- 클러스터란 무엇인가
- 10장 톰캣 업그레이드
- 다양한 환경
- 개발 환경
- 품질 보증 환경
- 준비 환경
- 제품 환경
- 업그레이드 생명 주기
- 톰캣 6에서 톰캣 7으로 업그레이드
- 톰캣 7의 요구사항
- 업그레이드할 톰캣 7 설치
- 톰캣 7 설정
- JVM 설정
- 데이터베이스 연결 설정
- 애플리케이션 마이그레이션
- 별칭 설정
- ITIL 과정 구현
- 가용성 관리
- 용량 관리
- 서비스 전이
- 요약
- 다양한 환경
- 11장 톰캣 7의 고급 설정
- 가상 호스팅
- 이름 기반 가상 호스팅
- IP 기반 가상 호스팅
- 톰캣 7의 가상 호스팅
- 호스트명 별칭
- 하나의 톰캣 인스턴스로 여러 애플리케이션 호스팅
- 다양한 톰캣 환경 ? 개발 환경/QA 환경/ 준비 환경/제품 환경
- 캐시 튜닝
- 톰캣 7 최적화
- 특권이 없는 사용자로 톰캣 7 실행하기
- 가상 호스팅
도서 오류 신고
정오표
[ p79 MySQL 데이터베이스 데이터소스 파라미터 정의 코드 전체 변경 ]
<Resource name="jdbc/tomcat7" auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/tomcat7"
username="tomcatuser" password="tomcat"
maxActive="100" maxIdle="30" maxWait="10000"/>
<Resource name="jdbc/tomcat7" auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/tomcat7"
username="tomcatuser" password="tomcat"
maxActive="100" maxIdle="30" maxWait="10000"/>