TOMCAT - WindyHana's Solanara

목차

개요

설치

  1. 라이브러리: 자바 라이브러리
    # cd /usr/local
    # sh ~/src/jdk-6u30-solaris-i586.sh
    # sh ~/src/jdk-6u30-solaris-x64.sh
    # ln -s jdk1.6.0_30 java
    # vi /etc/profile
    ...
    if [ -d /usr/local/java ]; then
      PATH=/usr/local/java/bin:$PATH; export PATH;
      JAVA_HOME=/usr/local/java; export JAVA_HOME;
      JDK_HOME=/usr/local/java; export JDK_HOME
    fi
    # . /etc/profile
    
  2. Tomcat 7

    톰캣의 설치는 매우 간단하다. 파일을 받아 적당한 디렉토리에 풀어주면 된다.
    root@wl ~/src # wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.23/bin/apache-tomcat-7.0.23.tar.gz
    root@wl ~/src # cd /usr/local
    root@wl /usr/local # tar xvfz ~/src/apache-tomcat-7.0.23.tar.gz
    root@wl /usr/local # ln -s apache-tomcat-7.0.23 tomcat
    
    단순히 압축만 풀어줘도 [/usr/local/tomcat/bin/startup.sh] 를 사용해 톰캣을 실행할 수 있다. 하지만 아래에 소개된 몇가지 설정을 고려해보자.
  3. Tomcat - Connectors

    root@wl ~/src # wget http://apache.mirror.cdnetworks.com//tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.32-src.tar.gz
    root@wl ~/src # tar xvfz tomcat-connectors-1.2.32-src.tar.gz
    root@wl ~/src # cd tomcat-connectors-1.2.32-src/native
    root@wl ~/tomcat-connectors-1.2.32-src/native # ./configure --with-apxs=/usr/local/apache2/bin/apxs
    root@wl ~/tomcat-connectors-1.2.32-src/native # make
    root@wl ~/tomcat-connectors-1.2.32-src/native # make install
    root@wl ~/tomcat-connectors-1.2.32-src/native # cd ../conf
    root@wl ~/tomcat-connectors-1.2.32-src/conf # cp httpd-jk.conf /usr/local/apache2/conf/extra/
    root@wl ~/tomcat-connectors-1.2.32-src/conf # cp uriworkermap.properties /usr/local/apache2/conf/extra/
    root@wl ~/tomcat-connectors-1.2.32-src/conf # cp workers.properties.minimal /usr/local/apache2/conf/workers.properties
    
    커넥터 설정은 다음 챕터를 참고하자.
  4. Tomcat - Native library

    정적 컨텐츠의 처리 성능을 높이기 위해 톰캣 네이티브 라이브러리를 설치하자. 네이티브 라이브러리를 설치하지 않고, 톰캣을 실행시키면 $CATALINA_HOME/logs/catalina.out 에 아래와 같은 메시지가 나오는 것을 볼 수 있다.

    정보: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ...

    이 메시지는 톰캣 네이티브 라이브러리를 사용하지 않았을 때 나오는 안내문구다. 성능을 위해서는 네이티브 라이브러리를 사용하라는 것이다. 이는 http://tomcat.apache.org/tomcat-6.0-doc/apr.html 의 문서를 보면 더 많은 정보를 얻을 수 있다. 이 네이티브 라이브러리를 컴파일해 설치하기 위해서는 APR 1.2+(아파치2를 설치할때 같이 설치된다), OpenSSL 0.9.7+, JDK 1.4+ 가 필요하다. 단순히 아래와 같이 설치해주면 된다.
    root@wl /usr/local/tomcat/bin # tar xvfz tomcat-native.tar.gz
    root@wl /usr/local/tomcat/bin # cd tomcat-native-1.1.22-src/jni/native
    root@wl /usr/local/tomcat/bin/tomcat-native-1.1.22-src/jni/native # ./configure --prefix=/usr/local --with-apr=/usr/local/apache2 1)
    root@wl /usr/local/tomcat/bin/tomcat-native-1.1.22-src/jni/native # make
    root@wl /usr/local/tomcat/bin/tomcat-native-1.1.22-src/jni/native # make install 2)
    
    1) 아파치2의 APR 라이브러리를 사용하고, /usr/local 에 설치한다.
    2) 설치한 후, 톰캣을 시작하면 자동으로 네이티브 라이브러리를 로드한다. catalina.out 에 [정보: Loaded APR based Apache Tomcat Native library 1.1.20.]와 같이 표시된다. 라이브러리를 로드하지 못하면 LD_LIBRARY_PATH에 있는 라이브러리 경로에 /usr/local/lib 이 추가되어있는지 확인해본다.
  5. Tomcat - Commons Daemon(jsvc)

    자바 어플리케이션을 쉽게 데몬화 시켜주는 네이티브 라이브러리다. 아파치 웹 서버처럼, 처음 실행시 루트권한으로 1024 이하의 포트를 바인드한후, 다른 사용자로 권한 변경할 때 사용한다. 유닉스에서는 Commons Daemon의 jsvc를 사용하며, 윈도에서는 Commons Daemon의 Procrun을 사용한다. 톰캣의 바이너리 디렉토리에 소스가 동봉되어있다.
    root@wl /usr/local/tomcat/bin # tar xvfz commons-daemon-native.tar.gz
    root@wl /usr/local/tomcat/bin # cd commons-daemon-1.0.7-native-src/unix
    root@wl /usr/local/tomcat/bin/commons-daemon-1.0.7-native-src/unix # ./configure --with-java=/usr/java
    root@wl /usr/local/tomcat/bin/commons-daemon-1.0.7-native-src/unix # make
    root@wl /usr/local/tomcat/bin/commons-daemon-1.0.7-native-src/unix # cp jsvc ../..
    root@wl /usr/local/tomcat/bin/commons-daemon-1.0.7-native-src/unix # cp samples/Tomcat7.sh ../..
    root@wl /usr/local/tomcat/bin/commons-daemon-1.0.7-native-src/unix # cd ../..
    root@wl /usr/local/tomcat/bin # useradd -u 210 tomcat
    root@wl /usr/local/tomcat/bin # ./Tomcat7.sh start 1)
    
    1) [startup.sh], [shutdown.sh] 대신 [Tomcat7.sh start], [Tomcat7.sh stop]를 사용해야 한다. (아니면 catalina.sh 를 적당히 수정하면 된다) 이 문서는 Commons Daemon를 사용하지 않았으므로, Tomcat7.sh으로 표기하지 않았다.

설정

  1. 톰캣 설정

    톰캣 매니저에 접속하기 위해, tomcat-users.xml 파일을 수정한다.
    root@wl ~ # vi /usr/local/tomcat/conf/tomcat-users.xml
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="manager" />
      <role rolename="manager-gui" />
      <role rolename="manager-script" />
      <role rolename="manager-jmx" />
      <role rolename="manager-status" />
      <user username="tomcat" password="s3cret" roles="manager-gui,manager-script,manager-jmx,manager-status" />
    </tomcat-users>
    
    GET 메소드에서, 한글입력을 위해 Connector 태그에 아래와 같이 추가한다.
    root@wl ~ # vi /usr/local/tomcat/conf/server.xml 1)
    <!-- Connector 태그에 useBodyEncodingForURI="true" 또는 URIEncoding="UTF-8" 속성을 추가한다.  -->
    <Connector port="8009" protocol="AJP/1.3"  redirectPort="8443" useBodyEncodingForURI="true" />
    <Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" connectionTimeout="20000" />
    
  2. 톰캣 설정 - 주의사항

  3. 아파치 웹 서버 설정

    Tomcat - Connectors 를 설치했다면 아래와 같은 작업이 필요하다.
    root@wl ~ # vi /usr/local/apache2/conf/httpd.conf 1)
    ...
    # mod_jk 
    Include conf/extra/httpd-jk.conf
    root@wl ~ # vi /usr/local/apache2/conf/extra/httpd-jk.conf
    ...
    JkWorkersFile conf/workers.properties 1)
    ...
    JkMountFile conf/extra/uriworkermap.properties 1)
    ...
    # JkMount /*.jsp ajp13
    root@wl ~ # vi /usr/local/apache2/conf/workers.properties
    worker.list=wlb,jkstatus,jk-status,jk-manager 2)
    ...
    worker.jk-status.type=status 3)
    worker.jk-status.read_only=true 3)
    worker.jk-manager.type=status 3)
    root@wl ~ # vi /usr/local/apache2/conf/extra/uriworkermap.properties
    ...
    /*.jsp=wlb 3)
    
    1) 보기와 같이 주석 표시(#)를 지운다.
    2) 보기와 같이 수정한다.
    3) 보기와 같이 추가한다.
    JK Status Manager는 http://localhost/jkmanager에서 아래와 비슷한 화면을 볼 수 있다.
    JK Status Manager

실행

샘플 프로그램

Ψproβe

마치며

Twitter RSS IconTexto 올바른 XHTML 1.0 Transitional 입니다 올바른 CSS입니다!