ZeroRadish

[Tomcat] Tomcat 설치하기 - 멀티인스턴스 본문

카테고리 없음

[Tomcat] Tomcat 설치하기 - 멀티인스턴스

ZeroRadish Etc 2019. 5. 3. 02:44

 

설치 디렉토리 구조 

설치 계정의 home에 sever, java, app 폴더를 생성한다. 이 포스팅에서는 tomcat 계정을 새로 만들고 tomcat 계정 home에서 진행한다. 

 

mkdir server java app

ls -ld $PWD/*

/home/tomcat/app

/home/tomcat/java

/home/tomcat/server

 

 

 

  • /home/tomcat/app - Tomcat 인스턴스 관리 위치
  • /home/tomcat/java - JDK 관리 위치
  • /home/tomcat/server  - Tomcat 엔진 관리 위치

 

Tomcat 공식 사이트

아래 주소는 7, 8, 9 안정화 버젼을 받을수 공식 사이트의 다운로드 페이지이다.

https://tomcat.apache.org/download-70.cgi

https://tomcat.apache.org/download-80.cgi

https://tomcat.apache.org/download-90.cgi

 

 

Apache Software Foundation Distribution Directory

아래 주소는 7,8,9 버젼 뿐만 아니라, 지금까지 릴리즈 되었던 모든 버젼을  확인하고 다운로드 받을 수 있다.

https://archive.apache.org/dist/tomcat/

 

 

 

 

Tomcat7 다운로드 및 압축해제

이 포스팅은 7버젼을 기준으로 진행한다.

Apache Software Foundation Distribution Directory에서 7버젼의 마지막 배포 버젼을 받아보도록 하겠다.

7버젼을  wget을 이용하여 다운로드 한다.

 

cd ~/server

wget https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.94/bin/apache-tomcat-7.0.94.tar.gz

tar -zxvf apache-tomcat-7.0.94.tar.gz

ls -al

apache-tomcat-7.0.94
apache-tomcat-7.0.94.tar.gz

rm -rf apache-tomcat-7.0.94

 

 

Java7 다운로드 및 압축해제

아래 주소로 접속해보면 7은 Java SE 6 이상이 필요하다고 적혀있다.

http://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.94/README.html

open jdk  7버젼을  wget을 이용하여 다운로드 한다.

 

cd ~/java

wget https://download.oracle.com/openjdk/jdk7u75/ri/jdk_ri-7u75-b13-linux-x64-18_dec_2014.tar.gz

tar -zxvf jdk_ri-7u75-b13-linux-x64-18_dec_2014.tar.gz

ls -al

java-se-7u75-ri
jdk_ri-7u75-b13-linux-x64-18_dec_2014.tar.gz

rm -rf jdk_ri-7u75-b13-linux-x64-18_dec_2014.tar.gz

 

 

 

 

Tomcat 엔진과 인스턴스 분리

다운로드 받은 Tomcat 파일을 압축을 푼다.

 

cd ~/server/apache-tomcat-7.0.94

ls -ld $PWD/*

/home/tomcat/server/apache-tomcat-7.0.94/BUILDING.txt 

/home/tomcat/server/apache-tomcat-7.0.94/CONTRIBUTING.md

/home/tomcat/server/apache-tomcat-7.0.94/LICENSE

/home/tomcat/server/apache-tomcat-7.0.94/NOTICE

/home/tomcat/server/apache-tomcat-7.0.94/README.md

/home/tomcat/server/apache-tomcat-7.0.94/RELEASE-NOTES

/home/tomcat/server/apache-tomcat-7.0.94/RUNNING.txt

/home/tomcat/server/apache-tomcat-7.0.94/bin

/home/tomcat/server/apache-tomcat-7.0.94/conf

/home/tomcat/server/apache-tomcat-7.0.94/lib

/home/tomcat/server/apache-tomcat-7.0.94/logs

/home/tomcat/server/apache-tomcat-7.0.94/temp

/home/tomcat/server/apache-tomcat-7.0.94/webapps

/home/tomcat/server/apache-tomcat-7.0.94/work

 

 

 

불필요한 파일 및 폴더를 제거한다.

 

rm BUILDING.txtCONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt

rm -rf temp work webapps/*/

 

 

 

남아있는 구성은 아래와 같다.

 

ls -ld $PWD/*

/home/tomcat/server/apache-tomcat-7.0.94/bin -- Tomcat 실행시 사용하는 스크립트들이 관리되는 폴더

/home/tomcat/server/apache-tomcat-7.0.94/conf -- 웹어플리케이션에서 필요한 설정 정보들이 관리되는 폴더

/home/tomcat/server/apache-tomcat-7.0.94/lib -- Tomcat에서 사용하는 라이브러리를 보관하는 폴더

/home/tomcat/server/apache-tomcat-7.0.94/logs -- 로그 정보가 수집되는 폴더

/home/tomcat/server/apache-tomcat-7.0.94/webapps -- 기본 어플리케이션 배포 디렉토리로 사용되는 폴더

 

 

https://tomcat.apache.org/tomcat-7.0-doc/introduction.html  접속하면 Directories and Files 영역에 폴더 구성에 대한 설명이 쓰여져있다.

 

work, temp 삭제 했지만 톰켓 기동할때 다시 생성되는 폴더이다. 

  • work - jsp servlet이 보관되는 폴더
  • temp - 임시파일이 보관되는 폴더

 

 

하나의 Tomcat 엔진으로 3개의 인스턴스를 구성해보자.

bin, lib는 엔진 역활을 수행하고 나머지 폴더는 각각의 인스턴스를 구성하는데 사용하게 된다. 

Tomcat 인스턴스 폴더로  /home/tomcat/app을 사용하기로 위에서 정하였다.

3개의 인스턴스를 서비스하기 위한 3개의 임의의 폴더를 생성한다.

 

 

mkdir /home/tomcat/app/foo 

mkdir /home/tomcat/app/bar 

mkdir /home/tomcat/app/baz

ls -ll /home/tomcat/app/

bar

baz

foo

 

 

 

인스턴스 생성에 필요한 구성을 3개의 폴더에  복사하고 엔진폴더에서는 삭제한다.

temp, work 폴더는 인스턴스 폴더에서 재 생성된다.

 

cp -rf conf logs webapps  /home/tomcat/app/foo/

cp -rf conf logs webapps  /home/tomcat/app/bar/

cp -rf conf logs webapps  /home/tomcat/app/baz/

rm -rf conf logs webapps  

 

 

 

Tomcat 인스턴스 테스트 페이지 생성

 테스트 디플로이 폴더를 hello로 생성한다.

 

mkdir /home/tomcat/app/foo/webapps/hello

mkdir /home/tomcat/app/bar/webapps/hello

mkdir /home/tomcat/app/baz/webapps/hello

 

hello 하위에 각 인스턴스를 구분할수 있는 index.html 파일을 만든다.

 

vi /home/tomcat/app/foo/webapps/hello/index.html

<h1>hellow! foo instance ~!</h1>

#이하 vi명령모드

: wq

 

vi /home/tomcat/app/bar/webapps/hello/index.html

<h1>hellow! bar instance ~!</h1>

#이하 vi명령모드

: wq

 

vi /home/tomcat/app/baz/webapps/hello/index.html

<h1>hellow! baz instance ~!</h1>

#이하 vi명령모드

: wq

 

 

Tomcat Server.xml 설정

이번 포스팅에서는 port만 변경하도록 한다.

port와 redirectPort를 검색하여 인스턴스 순번을 추가하여  다섯자리 포트번호로 변경한다.

 

vi /home/tomcat/app/foo/conf/server.xml

#이하 vi명령모드 - 포트변경하기 위함

: %s/8005/18085/g
: %s/8080/18080/g
: %s/8443/18443/g
: %s/8009/18009/g

: wq

 

vi /home/tomcat/app/bar/conf/server.xml

#이하 vi명령모드 - 포트변경하기 위함

: %s/8005/28085/g
: %s/8080/28080/g
: %s/8443/28443/g
: %s/8009/28009/g

: wq

 

vi /home/tomcat/app/baz/conf/server.xml

#이하 vi명령모드 - 포트변경하기 위함

: %s/8005/38085/g
: %s/8080/38080/g
: %s/8443/38443/g
: %s/8009/38009/g

: wq

 

 

Tomcat 인스턴스 시작, 중지 스크립트

아래 스크립트를 참고하여 3개의 인스턴스 폴더에 각각 start.sh, stop.sh 로 생성한다.

이후 start.sh을 실행하여 인스턴스를 기동한다. 

 

 

#인스턴스 시작 스크립트

CUR_DIR=$(pwd) 

#인스턴스명
export TOMCAT_SERVER_NAME=${PWD##*/}

#JAVA 위치export JAVA_HOME = ~/java/java-se-7u75-ri/bin#Tomcat 엔진 위치
export CATALINA_HOME = ~/server/apache-tomcat-7.0.94
export CATALINA_OPTS = "-Denv.servername=${TOMCAT_SERVER_NAME}"
export CATALINA_BASE = ${CUR_DIR}
export CATALINA_TMPDIR = ${CUR_DIR}/temp
export CATALINA_OUT = ${CUR_DIR}/logs/catalina.out
export CATALINA_PID = ${CUR_DIR}/${TOMCAT_SERVER_NAME}.pid


cd $CATALINA_HOME/bin
./startup.sh

 


#인스턴스 중지 스크립트

CUR_DIR=$(pwd) 

#인스턴스명
export TOMCAT_SERVER_NAME= ${PWD##*/}

#JAVA 위치
export JAVA_HOME = ~/java/java-se-7u75-ri/bin

#Tomcat 엔진 위치
export CATALINA_HOME=~/server/apache-tomcat-7.0.94
export CATALINA_OPTS="-Denv.servername=${TOMCAT_SERVER_NAME}"
export CATALINA_BASE=${CUR_DIR}
export CATALINA_TMPDIR=${CUR_DIR}/temp
export CATALINA_OUT=${CUR_DIR}/logs/catalina.out
export CATALINA_PID=${CUR_DIR}/${TOMCAT_SERVER_NAME}.pid


cd $CATALINA_HOME/bin
./shutdown.sh -force

 

 

 

페이지확인 

 

18080 포트를 사용하는 foo 인스턴스

 

 

28080 포트를 사용중인 bar 인스턴스

 

 

38080 포트를 사용중인 baz 인스턴스

Comments