by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

Apache Tomcat 서버의 이해




Apache Tomcat 서버의 이해

1. Apache Tomcat 개요

1.1 Apache Tomcat이란

  • 아파치 톰캣(Apache Tomcat)은 아파치 소프트웨어 재단(ASF:Apache Software Foundation)에서 개발한 서블릿 컨테이너가 있는 웹 애플리케이션 서버(WAS)이다.
  • 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하며 자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다.

1.2 Apache Tomcat 설치

2. server.xml의 이해

  • server.xml 은 서버에 대한 설정 파일이다.
server.xml의 구조
<!--  server.xml 의 root element, server의 shutdown port를 지정 함 -->
<Server port="8005" shutdown="SHUTDOWN">  
      |     <!--  server는 1개 이상의  service를 가질 수 있지만, 보통은 server.xml을 분리해서 관리-->
      +---<Service  name="Catalina">   <!-- service는 독립적인 톰캣의 서비스 이다. -->
                  |    <!-- Connector Client와 요청을 주고 응답을 받는 Interface이다. -->
                  +---<Connector port="8080" protocol="HTTP/1.1">
                  |    <!-- Connector 에는 HTTP와 AJP등이 있다. -->
                  +---<Connector port="8009" protocol="AJP/1.3" >  <!-- Apache Jserv Protocol -->
                  |    <!-- Engine은 적절한 Host로 처리를 넘기는 역할을 한다. -->
                  +---<Engine name="Catalina" defaultHost="localhost">
                              | <!-- Realm, Valve Component를 이용하면 Database연결, Single Sing On,
                              +---<Realm>              Access Log등 부가기능을 이용 할 수 있다. -->
                              |
                              +---<Valve>
                              | 
                              +---<Logger>
                              |   <!-- 가상 호스트를 정의한다. -->
                              +---<Host appBase="webapps">
                                          | <!-가상호스트에서 동작하는 하나의 웹 어플리케이션 이다. -->
                                          +---<Context path="" docBase="C:\workspace\project\wiki ">
                                          |
                                          +---<Valve>
                                          |
                                          +---<Realm>
                                          |
                                          +---<Logger>

3. Document Root 설정 방법

3.1 톰캣의 기본 Document Root

  • 톰캣의 기본 Document Root는 webapps/ROOT 이다.
  • server.xml의 <Host> 태그는 아래와 같이 설정되어 있고, <Context> 태그는 생략되어 있다.
  • appBase는 $CATALINA_HOME 디렉토리 밑 상대경로를 기본 인자로 받는다.
  • <Context> 태그가 생략되어 있으면 기본적인 루트는 ROOT 디렉토리 밑이 된다
  • 즉 기본적인 Document Root는 $CATALINA_HOME/webapps/ROOT 가 된다.
톰캣의 기본 Document Root
<Host name="localhost"  appBase="webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
 ..
</Host>
  • $CATALINA_HOME/bin/startup.bat 파일을 실행시키고 http://localhost:8080/ 으로 접속해 보자
  • $CATALINA_HOME/webapps/ROOT/inex.html 파일이 실행 된 것을 확인 할 수 있다.

3.2 <Context> 태그의 사용

  • <Host>태그 안에 <Context> 태그를 사용해 appBase 하위 디렉토리를 Document Root로 지정 할 수 있다.
  • 아래는 webapps/examples 을 Document Root 로 지정한 예제이다.
<Context> 태그의 사용
<Host name="localhost"  appBase="webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
 <Context path="" docBase="examples" reloadable="true"/>
 ..
</Host>
  • $CATALINA_HOME /conf/server.xml Host 설정 안에 Context를 예제와 같이 추가한 후 tomcat을 restart 하고, http://localhost:8080/ 으로 접속해 보자
  • "Apache Tomcat Examples" 페이지가 나오는 것을 확인 할 수 있다.

3.3 원하는 디렉토리를 Document Root로 사용

  • <Context> 태그의 docBase 디렉토리를 절대경로로 지정을 하면 원하는 디렉토리를 Document Root로 사용 할 수 있다.
  • 아래는 Apache HTTP Server의 htdocs를 Document Root로 설정 한 예제이다.
원하는 디렉토리를 Document Root로 사용
<Host name="localhost"  appBase="webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
 <Context path="" docBase="C:\dev\Apache2.2\htdocs" reloadable="true"/>
 ..
</Host>
  • $CATALINA_HOME /conf/server.xml Host 설정 안에 Context를 예제와 같이 추가한 후 tomcat을 restart 하고, http://localhost:8080/ 으로 접속해 보자
  • Apache HTTP Server의 Document Root 페이지가 나오는 것을 확인 할 수 있다.
  • 현재는 상태는 http://localhost/(Apache HTTP Server), http://localhost:8080/(Apache Tomcat Server)모두 같은 페이지가 나온다. 직접 접속해서 확인해 보자

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.