Tomcat

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기

Apache Tomcat 6.0.16에 대한 전반적인 사항을 정리한다.
Servlet과 JSP를 실행시켜주는 웹 어플리케이션 서버(WAS) 이다.


Windows Server 2003용 설치 가이드

아래 설치 가이드는 Windows Server 2003을 기준으로 작성한 것 입니다. 설치 환경이 틀릴 경우에는 별도의 주석을 달아 주세요.

설치전 사전 준비 사항


Apache Tomcat 설치

다운로드


  • 다운로드한 설치 프로그램(apache-tomcat-6.0.16.exe)을 실행한다.


  • Tomcat의 기본 정보를 읽고 "Next" 버튼을 눌러 설치를 시작한다.
설치 시작


  • 라이센스 정보를 읽고 난 후 "I Agree" 버튼을 누른다.
라이센스


  • 모든 컴포넌트를 설치하도록 선택한다.
  • Tomcat -> Service 등을 모두 선택할 것
설치 모드


  • 설치할 Tomcat의 디렉토리를 지정한다.
설치 디렉토리


  • Tomcat 관리자 아이디와 암호를 지정한다.
관리자 정보 지정


  • Tomcat에서 사용할 JRE의 디렉토리를 지정하고 "Install" 버튼을 눌러 설치를 시작한다.
Java 연동


  • "Finish" 버튼을 눌러 설치를 종료한다.
설치 종료


  • 컴퓨터에 Tomcat에서 사용할 환경 변수를 지정한다.
  • CATALINA_HOME=d:/OpenBiz/31_application/Tomcat6016
  • TOMCAT_HOME=d:/OpenBiz/31_application/Tomcat6016
  • CATALINA_OPTS=-Xmx1024m (필요시 설정)
바탕화면의 "내 컴퓨터"에서 오른 마우스를 클릭한 후 "속성"을 선택한다. "고급" 탭에서 하단에 있는 "환경 변수" 버튼을 누른다. 위에 명시한 환경 변수를 추가 또는 수정한다.
ppp


  • %TOMCAT_HOME%/lib/servlet-api.jar 를 %JAVA_HOME%/jre/lib/ext 에 복사 한다.
  • %TOMCAT_HOME%/lib/servlet-api.jar 를 %JRE_HOME%/lib/ext 에 복사 한다.


  • 윈도우 우측 하단의 붉은 원으로 표시된 것을 더블 클릭하여 "Apache Tomcat Properties" 창을 띄운다.
시스템 트레이


  • "Apache Tomcat Properties" 창에서 "Start"/"Stop" 버튼으로 Tomcat을 시작/종료한다.
시작 종료


  • Windows Server 2003에서 Tomcat 서비스가 기동되지 않는 경우의 조치
Windows Server 2003의 경우 MS의 닷넷 지원 파일에 문제가 있는 것으로 보이며 Tomcat의 서비스가 기동되지 않는 오류가 발생한다.
첨부된 zip 파일을 압축 해제하여 msvcr71.dll을 c:/windows/system32/에 복사하고 서버를 리부팅 하세요. (:Media:Msvcr71.zip)


방화벽 설정

Apache Tomcat을 외부에서 사용하기 위해서 방화벽에서 8080 port를 사용할 수 있도록 오픈한다.

  • "시작" -> "설정" -> "제어판"에서 "Windows 방화벽"을 실행한다.


  • "예외" 탭을 선택하여 "포트 추가" 버튼을 클릭한다.
방화벽 예외


  • 방화벽에 Tomcat에서 사용할 다음 포트를 추가한다.
  • Tomcat, 8080, TCP
방화벽 포트 추가


Apache Tomcat 환경 설정

  • UTF-8 Charset을 위해 Tomcat의 Java 환경을 설정한다.
  • "Apache Tomcat Properties" 창에서 "Java" 탭을 선택한다.
  • Java Options에 다음을 추가한다.
-Dfile.encoding=8859_1
-Dfile.client.encoding=8859_1
-Dclient.encoding.override=8859_1
ppp
  • "적용" 버튼을 눌러 변경 사항을 적용한다.


  • UTF-8 Charset을 위해 Tomcat 환경을 설정한다.
%TOMCAT_HOME%/conf/server.xml에서 Connector 정보에 URIEncoding="UTF-8"를 추가한다.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />


설치후 진행 사항

Ubuntu Server용 설치 가이드

Ubuntu Server에서 Tomcat을 설치한다.

설치전 사전 준비 사항

Tomcat 설치

  • Apache Tomcat 6.0.18 설치
apt-get install tomcat6
  • 언어(UTF-8) 설정과 보안 설정
vi /etc/tomcat6/server.xml
   #--- URIEncoding="UTF-8" 추가
   <Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
              connectionTimeout="20000"
              redirectPort="8443" />
   #--- 주석을 제거하고 URIEncoding="UTF-8" enableLookups="false" 추가
   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
    URIEncoding="UTF-8" enableLookups="false" />

vi /etc/init.d/tomcat6
   #--- 다음 라인을 추가 한다.
   JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=8859_1 -Dfile.client.encoding=8859_1 -Dclient.encoding.override=8859_1"
   #--- 다음 라인 위에
   JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$JVM_TMP"
  • Tomcat 설치 정보
  • 설치 폴더 : /usr/share/tomcat6/
  • 환경 폴더 : /etc/tomcat6/, /etc/default/tomcat6
  • 작업 폴더 : /var/lib/tomcat6/
  • 로그 폴더 : /var/lib/tomcat6/logs/, /var/log/tomcat6/
  • 캐시 폴더 : /var/cache/tomcat6/
  • 기동 종료 : /etc/init.d/tomcat6 restart, start, stop, status
  • 서비스 확인 : ps -ef | grep tomcat
  • Root 폴더 : /var/lib/tomcat6/webapps/ROOT/

Apache HTTP Server 연계

  • Tomcat Connector 1.2.26 설치
apt-get install apache2.2-common apache2-utils
apt-get install libapache2-mod-jk
a2enmod jk
/etc/init.d/apache2 restart
  • Tomcat Connector 환경 설정
  • vi /etc/apache2/mods-enabled/jk.conf 생성
   ###ServerName localhost
  JkWorkersFile   /etc/apache2/mods-enabled/workers.properties
  JkShmFile       /var/log/apache2/mod_jk.shm
  JkLogFile       /var/log/apache2/mod_jk.log
  JkLogLevel      debug
  JkLogStampFormat   "[%a %b %d %H:%M:%S %Y] "
  JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
  JkRequestLogFormat "%w %V %T"
  • vi /etc/apache2/mods-enabled/jk_mount.conf 생성
   ###--- Apache Tomcat에서 처리할 URL 패턴을 등록한다.
  JkMount /*.jsp      worker1
  JkMount /servlet/*  worker1

  ### JkUnMount /servlet/*.gif ajp13_worker
  • vi /etc/apache2/mods-enabled/workers.properties 생성
   workers.tomcat_home=/usr/share/tomcat6
  workers.java_home=/usr/lib/jvm/java-6-sun
  ps=/

  worker.list=worker1
  worker.worker1.host=localhost
  worker.worker1.port=8009
  worker.worker1.type=ajp13
  worker.worker1.lbfactor=50
  worker.worker1.socket_keepalive=1
  worker.worker1.socket_timeout=60
  • vi /etc/apache2/sites-enabled/000-default
   #--- Include ... 추가
  <VirtualHost *:80>
      ServerAdmin webmaster@localhost

      DocumentRoot /var/www
      Include /etc/apache2/mods-enabled/jk_mount.conf
  • 설치 정보
  • 로그 폴더 : /var/log/apache2/mod_jk.log

CentOS용 설치 가이드

Apache Tomcat 설치

yum install tomcat6 tomcat6-*
  • 언어와 UTF-8 설정
  • 설치 정보
  • 설치 폴더 : /usr/share/tomcat5/
  • 실행 파일 : /usr/bin/
  • 환경 파일 : /etc/tomcat5/server.xml, /etc/tomcat5/
  • Tomcat Root : /usr/share/tomcat5/webapps/ROOT/, ROOT 폴더가 없을 경우 만들어 주세요.
  • 기동 종료 : /etc/init.d/tomcat5 start, stop, restart, status 또는 service tomcat5 start, stop, restart
  • 서비스 확인 : ps -ef | grep tomcat5 | grep -v grep
  • 로그 파일 : /usr/share/tomcat5/logs/
  • PID 파일 : /var/run/tomcat5.pid

Apache Tomcat 7 설치

#--- Tomcat 설치
yum -y install tomcat tomcat-*
vi /etc/tomcat/server.xml
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="/usr/share/tomcat/.keystore" keystorePass="비밀번호"
               clientAuth="false" sslProtocol="TLS" URIEncoding="UTF-8" />

#--- TLS용 .keystore 생성
keytool -genkey -alias tomcat -keyalg RSA
cp ~/.keystore /usr/share/tomcat

#--- Apache Tomcat 6는 default로 IPv6를 사용 한다.
#--- IPv4 사용 설정
export JAVA_OPTS="-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true"

systemctl restart  tomcat.service
netstat -nlp | grep java
tail -f /usr/share/tomcat/logs/catalina.2016-11-09.log

Tomcat Connectors 설치

Tomcat Connectors 참조

사용자 가이드

tomcat6w가 실행되지 않을 때

  • Vista에서 tomcat6w가 "unable to open the service tomcat6" 메시지를 표시하며 실행되지 않을 경우, 관리자 권한으로 실행 한다.

관리자 가이드

Tomcat Root 변경

vi /etc/tomcat6/server.xml

<Host name="localhost"  appBase="/cloudnas/www/jopenbusiness/webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
</Host>

<Host name="www.jopenbusiness.com"  appBase="/cloudnas/www/jopenbusiness/webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="jopenbusiness.com"  appBase="/cloudnas/www/jopenbusiness/webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
</Host>


  • vi /etc/tomcat6/server.xml
  • appBase : Tomcat DocumentRoot 폴더명
  • Context : 특정 path로 접속할 경우 사용할 폴더명을 지정
<Host name="localhost" appBase="/var/www/html"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">

  //--- 아래 라인을 추가
  <Context path="" docBase="/usr/share/tomcat5/webapps/ROOT" reloadable="true" debug="0" />
  <Context path="/balancer" docBase="/usr/share/tomcat5/webapps/balancer" reloadable="true" debug="0" />
  <Context path="/jsp-examples" docBase="/usr/share/tomcat5/webapps/jsp-examples" reloadable="true" debug="0" />
  <Context path="/servlets-examples" docBase="/usr/share/tomcat5/webapps/servlets-examples" reloadable="true" debug="0" />
  <Context path="/tomcat-docs" docBase="/usr/share/tomcat5/webapps/tomcat-docs" reloadable="true" debug="0" />
  <Context path="/webdav" docBase="/usr/share/tomcat5/webapps/webdav" reloadable="true" debug="0" />
  • Tomcat 재기동
service tomcat5 restart
  • Linux의 심볼 링크를 사용하여 폴더명을 변경할 수도 있습니다.
cd  /var/www/html
ln  -s  /usr/share/tomcat5/webapps/balancer  balancer


이름 기반 가상 호스트

vi /usr/share/tomcat6/conf/server.xml

   <Host name="www.jopenbusiness.com"  appBase="/cloudnas/www/jopenbusiness/webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
   </Host>
   <Host name="jopenbusiness.com"  appBase="/cloudnas/www/jopenbusiness/webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">


  • 참고 문헌

모니터링 및 튜닝

  • 참고 문헌

참고 문헌