0. 환경
macbook-pro 13” 2012 mid / 10GB
parallels9 ubuntu 12.04 LTS
1. 필요성
배포 환경에 따라 서버환경도 달라짐
- 실무 프로젝트의 배포 환경은 개발, 스테이징, 상용으로 구분
- 개발단계
- One Server, One Instance, Multiple Context의 환경을 주로 사용- 스테이징 단계
- 기능 및 성능 테스트를 위한 환경, 상용단계와 거의 동일 환경- 상용 단계
- 실제 서비스하여 고객이 접속하는 환경
스테이징 단계 이상부터 수용해야하는 상황
- 한 서버에 2개 이상 WAS버전 구동 가능
- 상위 버전 업그레이드 용이
- 기존 서비스 변경 최소화
- 서비스별 튜닝 설정 (WAS, JNDI, Http Connection)이 별도 구성
- 하나의 Instance를 Shutdown해도 다른 서비스에 영향을 주지 않음
- 운영 및 장애에 신속 대응
2. Tomcat의 구조
Directory 구조
directory | 설명 |
---|---|
lib | Tomcat Engine이 사용하는 외부 라이브러리리(.jar) 공간 |
bin | Tomcat이 실행하는 명령 스크립트 공간 |
conf | Tomcat의 Web 서비스를 위한 설정 파일 공간 |
logs | Log 파일 공간 |
temp | Tomcat Engine에서 사용하는 임시 파일 공간 |
webapps | Web application 배포 공간 |
work | JSP 파일이 Servlet으로 Compile(.class)된 공간 |
구성방법
구분 | 특징 |
---|---|
Tomcat Engine | /lib, /bin directory만 사용 |
Tomcat Instacne | /conf, /logs, /temp, /webapps, /work 사용 |
- 하나의 Instacne는 하나의 JVM
- directory를 물리적으로 구분함으로써 Multi Instance 환경 구성
4. 실행흐름
설정된 환경변수
CATALINA_HOME="Tomcat Engine 디렉토리"
CATALINA_BASE="Tomcat Instance 홈 디렉토리"
CATALINA_TMPDIR="Tomcat Instance가 사용하는 임시 디렉토리"
JAVA_HOME="Java 홈 디렉토리"
CLASSPATH="클래스 패스 설정 정보"
$CATALINA_HOME/bin/startup.sh 실행
실제로 catalina.sh를 실행
catalina.sh는 Tomcat 기동 준비
- CATALINA_HOME 환경변수를 통해 Tomcat Engine Directory 찾음
- CATALINA_BASE 환경변수에 있는 Directory를 찾아 Instance 기동
5. 설치방법
환경변수 설정
# OS 홈 디렉토리에 있는 .bash_profile
# vi ~/.bash_profile
JAVA_HOME="설치된 JDK directory 위치"
CATALINA_HOME="설치된 Tomcat Engine directory 위치"
각 Instance별 Directory 생성
mkdir [경로/instance_name1]
mkdir [경로/instance_name2]
필수 directory 복사
# Tomcat Engine directory로 이동
cd $CATALINA_HOME
# 각 필수 directory 복사
# cp의 -r 옵션은 그 하위폴더까지 복사한다는 의미를 가짐
cp -r * [경로/instance_name1]
cp -r * [경로/instance_name2]
필요없는 file/directory 제거
#instance_name1로 이동
cd [경로/instance_name1]
# 필요없는 file/directory 제거
rm -rf LICENSE NOTICE RELEASE-NOTES RUNNING.txt
rm -rf ./bin ./lib
# instance_name2도 동일하게 진행
[경로/instance_name]/conf/server.xml 수정
- 하나의 머신을 Multi Instance로 가동하므로 Port관리가 중요
- 실무에서는 각 Port번호를 정책적 관리가 필요
- server port, http port, redirect port, ajp port를 다르게 설정
Port별 특징
Port Name | 특징 |
---|---|
server port | server의 shutdown을 받는 port |
http port | http 서비스를 위한 port |
redirect port | https로 요청이 들어온 경우 설정된 port로 redirect |
AJP port | (Apache Jserv Protocol) web server의 요청을 처리하는 port |
참고: websphere
6. 실행방법
각 instance의 경로를 재지정 (instance_name1 기준)
export CATALINA_BASE="[instance_name1의 경로]"
JAVA_OPTS, CATALINA_OPTS 환경변수를 상황에 맞게 설정
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"
export CATALINA_OPTS="-Denv=product -Denv.servername=[instance_name1]"
Tomcat Engine에서 시작 및 종료 스크립트를 실행
# 시작
$CATALINA_HOME/bin/startup.sh
# 종료
$CATALINA_HOME/bin/shutdown.sh
7. 기타 Tips
실행 Script 작성방법 [작성중]
8. 참고자료
Written with Dec7.
댓글 없음:
댓글 쓰기