목차

Install Tomcat6 on Debian(squeeze) with virtual hosts and Apache2 integration

debian package install

  1. sun-java install
    apt-get install sun-java6-bin sun-java6-jdk sun-java6-jre
  2. tomcat6 package install
    apt-get install libtomcat6-java tomcat6 tomcat6-admin \
                    tomcat6-common tomcat6-docs tomcat6-examples tomcat6-user
  3. apache2 package install
    apt-get install apache2 apache2-mpm-prefork apache2-utils apache2.2-bin \
                    apache2.2-common libapache2-mod-jk libapache2-mod-php5 

설치/설정 경로

JDK 1.6 설치경로 (JAVA_HOME) /usr/lib/jvm/java-6-sun
TOMCAT 구동 Script /etc/init.d/tomcat6
TCOMAT 설치경로 (TCOMAT_HOME) /var/lib/tomcat6
TOMCAT Server 설정파일 /etc/tomcat6/server.xml
TOMCAT Manager 설정파일 /etc/tomcat6/tomcat-users.xml
Context 설정파일 /[SERVICE DIRECTORY]/META-INF
APACHE 구동 Script /etc/init.d/apache2
APACHE mod_jk 모듈설정 /etc/apache2/mod-enabled/jk.load
APACHE workers 파일위치정보 /etc/apache2/mod-enabled/jk.conf
APACHE TOMCAT SERVER(workers) 설정정보파일 /etc/libapache2-mod-jk/workers.properties
APACHE Virtual HOST 설정 디렉토리 /etc/apache2/sites-enabled/

tomcat virtual hosting

  1. virtual host 란 하나의 여러개의 웹사이트를 운영하는 것이다.
  2. tomcat virtual host 설정은 Host 에서 처리할 수 있다.
  3. tomcat 에서는 server.xml 에서 virtual host 설정을 할 수 있다.
  4. server.xml 을 살펴보면, Server 아래 Service가 있고, Service 아래 Engine , Engine 아래 Host 설정이 있다.
    Server > Service > Engine > Host 
  5. virtual host 는 크게 두가지 방법으로 설정할 수 있다.
    1. 도메인(Domain,URL)로 분류
      1. (예) starlits.adminschool.net , mrkayhyun.adminschool.net , bearcho.adminschool.net , beans.adminschool.net
      2. Host 추가로 설정할 수 있다.
        server.xml 에서 Host 영역을 복사하여 수정하면 된다.
    2. 포트(Port)로 분류 : (예)
      1. (예) starlits.adminschool.net:8080 , starlits.adminschool.net:8090 , starlits.adminschool.net:9090
      2. Service 추가로 설정할 수 있다.
        server.xml에서 Service 영역을 복사하여 수정하면 된다.

도메인(Domain) Virtual Host 설정

  1. server.xml 파일에서 </Host> 아래에 다음 내용을 추가한다.
    starlits.adminschool.net 이라는 도메인을 추가하는 방법이다.
          ...
          </Host>
    
          <!--
            starlits.adminschool.net
            -->
          <Host name="wolf.adminschool.net"
                appBase=""
                unpackWARs="true"
                autoDeploy="true"
                xmlValidation="false"
                xmlNamespaceAware="false"
                debug="1"
            >
                <Context path="" docBase="/home/starlits/html" reloadable="true">
                    <Resources className="org.apache.naming.resources.FileDirContext" allowLinking="true" />
                </Context>
          </Host>
  2. tomcat 을 재시작한다.
     # /etc/init.d/tomcat6 restart 

포트(Port) Virtual Host 설정

Apache2 mod_jk 설정

  1. Apache2에서 tomcat 을 연결하려면, mod_jk 모듈이 필요하다.
  2. workers.properties , jk.conf , virtualhost_apache2.conf 설정이 필요하다.

workers.properties

  1. /etc/libapache2-mod-jk/workers.properties 설정파일
    workers.tomcat_home=/usr/share/tomcat6
    workers.java_home=/usr/lib/jvm/default-java
    ps=/
    worker.list=ajp13_worker
    worker.ajp13_worker.port=8009
    worker.ajp13_worker.host=localhost
    worker.ajp13_worker.type=ajp13
    worker.ajp13_worker.lbfactor=1
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=ajp13_worker

jk.conf

  1. /etc/apache2/sites-enabled/jk.conf 설정파일
    JkWorkersFile   /etc/libapache2-mod-jk/workers.properties
    JkLogFile       /var/log/apache2/mod_jk.log
    JkLogLevel      info
    JkMount /*.jsp ajp13_worker
    JkMount /*/servlet/ ajp13_worker

/etc/apache2/sites-enabled/

  1. /etc/apache2/sites-available/adminschool.net 이라는 파일을 만든다.
    <color red>JkMount /*.jsp ajp13_worker</color> 설정을 추가해 준다.
    <VirtualHost *:80>
        JkMount /*.jsp ajp13_worker
        ServerName starlits.adminschool.net
        DocumentRoot /home/starlits/html/
        ServerAdmin starlits@adminshcool.net
        ErrorLog /var/log/apache2/wolf.adminschool.net-error.log
        CustomLog /var/log/apache2/wolf.adminschool.net-access.log combined env=!dontlog
    </VirtualHost>
  2. /etc/apache2/sites-enabled/001-adminschool.net 이라는 링크를 만든다.
    # cd /etc/apache2/sites-enabled/
    # ln -s ../sites-available/adminschool.net 001-adminschool.net
  3. APACHE를 재시작한다.
     # /etc/init.d/apache2 restart