Tomcat server.xml 한국어 해설 버전

 

server.xml의 영어 설명부분을 한글로 번역해 놓았다.

<!-- Example Server Configuration File -->
<!-- Note: 컴포넌트들은 각각의 부모-자식 관계에 따라 중첩(nested) 되었음 -->

<!-- "Server" 는 전체 JVM 을 나타내는 싱글톤 요소입니다. 이것은 하나 이상의
     "Service" 인스턴스를 갖고 있습니다. 서버는 지정된 포트를 통해 shutdown
     명령을 받습니다.

     Note: "Server" 는 스스로가 "Container" 가 아니기 때문에, "Valves" 또는
     "Loggers" 같은 서브 컴포넌트를 "Server" 와 같은 레벨에서 정의하면 안됩
     니다. -->

<Server port="8005" shutdown="SHUTDOWN" debug="0">


  <!-- "Service" 는 한 개의 "Container" 를 공유하는 하나 이상의 "Connectors"
       의 집합체입니다. (이 컨테이너 안에서 웹어플리케이션이 돌아갑니다). 보통
       은, 이 컨테이너가 "Engine" 입니다만, 요구되지는 않습니다.  

       Note:  "Service" 는 스스로가 "Container" 가 아니기 때문에, "Valves" 
       또는 "Loggers" 같은 서브 컴포넌트를 "Server" 와 같은 레벨에서 정의하면
       안됩니다.
   -->

  <!-- Tomcat Stand-Alone Service 로 설정하기 -->
  <Service name="Tomcat-Standalone">

    <!-- "Connector" 는 요청을 받아서, 응답이 반환되는 종점(endpoint)을 나타냅니
         다. 각 커넥터는 처리를 담당하는 관련된 "Container"(보통 "엔진")로 요청을
         전달해줍니다.

         기본값으로, 8080포트에 non-SSL HTTP/1.1 커넥터가 설정되어있습니다.
         SSL HTTP/1.1 커넥터 역시 사용하려면 아래에 있는 지시를 따라서 하고, 두번
         째 커넥터 엔트리의 주석표시를 지워주시면 됩니다. SSL 지원은 다음 단계를
         거쳐야 합니다:
         * JSSE 1.0.2 또는 이후 버전을 다운받아서 설치하고, JAR 파일들을 
           "$JAVA_HOME/jre/lib/ext" 디렉토리에 복사해 놓습니다.
         * "$JAVA_HOME/jre/lib/security/java.security" 를 편집하고 
           security.provider.2=com.sun.net.ssl.internal.ssl.Provider 를 추가합
           니다.
         * 실행: keytool -genkey -alias tomcat -keyalg RSA
           패스워드 값"changeit" 으로 실행합니다.

         기본적으로, DNS lookups 는 웹어플리케이션이 request.getRemoteHost() 를
         부를 때 동적하도록 되어있습니다. 이것은 성능에 영향을 줄 수 있기 때문에,
         "enableLookups" 속성을 "false" 로 바꿔주면 이 기능을 사용하지 않을 수 
         있습니다.  DNS lookups 가 사용하지 않게 되면 request.getRemoteHost() 는
         remote client 의 IP 주소의 String 버전을 반환할 것입니다.
    -->

    <!-- 8080 포트에 non-SSL HTTP/1.1 Connector 설정하기 -->
    <Connector className="org.apache.catalina.connector.http.HttpConnector"
               port="80" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0" connectionTimeout="60000"/>
    <!-- Note : 커넥션 타임아웃을 사용하지 않으려면, connectionTimeout 값을 -1로
      수정해 주세요.-->

    <!-- 8443 포트에 SSL HTTP/1.1 Connector 설정하기 -->
    <!--
    <Connector className="org.apache.catalina.connector.http.HttpConnector"
               port="8443" minProcessors="5" maxProcessors="75"
               enableLookups="true"
           acceptCount="10" debug="0" scheme="https" secure="true">
      <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
               clientAuth="false" protocol="TLS"/>
    </Connector>
    -->

    <!-- 8081 포트에 Proxied HTTP/1.1 Connector 설정하기 -->
    <!-- 사용법에 대한 자세한 내용은 proxy 문서를 보십시오. -->
    <!--
    <Connector className="org.apache.catalina.connector.http.HttpConnector"
               port="8081" minProcessors="5" maxProcessors="75"
               enableLookups="true"
               acceptCount="10" debug="0" connectionTimeout="60000"
               proxyPort="80"/>
    -->

    <!-- 8082 포트에 non-SSL HTTP/1.0 Test Connector 설정하기 -->
    <!--
    <Connector className="org.apache.catalina.connector.http10.HttpConnector"
               port="8082" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0"/>
    -->

    <!-- Engine 은 (Catalina 에서) 모든 요청을 처리하는 입력지점을 나타냅니다.
         Tomcat stand alone 용으로 구현된 Engine 은 요청에 포함된 HTTP 헤더를 분
         석하고, 적당한 Host (가상 호스트) 로 전달하는 역할을 합니다. -->

    <!-- 컨테이너 구조에서 top level 컨테이너 설정하기 -->
    <Engine name="Standalone" defaultHost="localhost" debug="0">

      <!-- 요청 dumper 밸브는 Tomcat 의 인스턴스의 모든 요청을 받는 동안 들어온 
           요청 헤더와 쿠키, 보내질 응답 헤더와 쿠키에 대해 유용한 디버깅 정보를
           덤프합니다. 만일 특정한 가상호스트, 또는 특정한 어플리케이션에 들어온
           요청에만 만 관심을 갖고자 한다면, 이 요소를 해당하는 <Host> 나 <Context>
           엔트리 아래에 위치시켜주십시오.

           모든 서블릿 2.3 컨테이너에 유동적인 유사한 동작구조를 위해서, 예제 
           어플리케이션에 있는 "RequestDumperFilter" 필터를 확인하십시오.
           (소스는 "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters"
           위치에 있을 것입니다.)

           기본적으로 Request dumping 기능은 사용하지 않는 것으로 되어있습니다.
           다음의 요소에서 주석을 빼면 사용할 수 있습니다. -->
      <!--
      <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
      -->

      <!-- 하위수준에서 지정되지 않았다면 사용되는 Global Logger -->
      <Logger className="org.apache.catalina.logger.FileLogger"
              prefix="catalina_log." suffix=".txt"
              timestamp="true"/>

      <!-- 이 Realm 이 여기에 있기 때문에, 인스턴스는 전체적으로 공유됩니다. -->

      <Realm className="org.apache.catalina.realm.MemoryRealm" />

      <!-- 데이터베이스에 저장되고 JDBC 를 통해서 접근하는 Realm 을 사용하려면
           위 Realm 을 다음의 Realm 중 하나와 대치하십시오. -->

      <!--
      <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
             driverName="org.gjt.mm.mysql.Driver"
          connectionURL="jdbc:mysql://localhost/authority?user=test;password=test"
              userTable="users" userNameCol="user_name" userCredCol="user_pass"
          userRoleTable="user_roles" roleNameCol="role_name" />
      -->

      <!--
      <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
             driverName="oracle.jdbc.driver.OracleDriver"
          connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL?user=scott;password=tiger"
              userTable="users" userNameCol="user_name" userCredCol="user_pass"
          userRoleTable="user_roles" roleNameCol="role_name" />
      -->

      <!--
      <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
             driverName="sun.jdbc.odbc.JdbcOdbcDriver"
          connectionURL="jdbc:odbc:CATALINA"
              userTable="users" userNameCol="user_name" userCredCol="user_pass"
          userRoleTable="user_roles" roleNameCol="role_name" />
      -->

      <!-- default virtual host 설정하기 -->
      <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true">

        <!-- 보통, 사용자는 각각의 웹 어플리케이션에 인증을 해줘야만 합니다.
             사용자가 security 제한에 걸려있는 보호된 자원 중에서 처음에 걸리는
             인증을 한번만 통과하고, 이 가상호스트 안의 "모든" 웹어플리케이션에
             통과된 인증으로 접근하게 하려면 아래 엔트리의 주석을 해제하십시오.
        -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn"
                   debug="0"/>
        -->

        <!-- Access log는 이 가상호스트에 접속하는 모든 요청을 처리합니다. 기본값은
             로그 파일은 $CATALINA_HOME 에 상대적인 "logs" 디렉토리에 생성됩니다.
             "directory" 속성을 이용해서 원하는 다른 디렉토리로 지정할 수 있습니다.
             ($CATALINA_HOME 에 대해) 상대적인 디렉토리나 또는 원하는 디렉토리의 
             절대 경로를 써주면 됩니다.
        -->
        <Valve className="org.apache.catalina.valves.AccessLogValve"
                 directory="logs"  prefix="localhost_access_log." suffix=".txt"
                 pattern="common"/>

        <!-- 이 가상 호스트에 관계된 모든 Context 에 의해 공유된 Logger. 기본값은
             (FileLogger 를 사용할 때), 로그 파일들은 $CATALINA_HOME 에 상대적인 
             "logs" 디렉토리에 생성됩니다. "directory" 속성을 이용해서 원하는 다른
             디렉토리로 지정할 수 있습니다. ($CATALINA_HOME 에 대해) 상대적인 디렉
             토리나 또는 원하는 디렉토리의 절대 경로를 써주면 됩니다.
        -->
        <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="localhost_log." suffix=".txt"
            timestamp="true"/>

        <!-- 각각의 웹 어플리케이션에 대한 프로퍼티 설정. 이것은 기본값과는 다른 프로
             퍼티를 설정하기 윈할 때나, 웹어플리케이션 document 루트 디렉토리가 가상
             호스트의 appBase 디렉토리와 다른 곳에 있을 경우에만 필요합니다.
        -->

        <!-- Tomcat Root Context -->
        <!--
          <Context path="" docBase="ROOT" debug="0"/>
        -->

        <!-- Tomcat Examples Context -->
        <Context path="/examples" docBase="examples" debug="0"
                 reloadable="true">
          <Logger className="org.apache.catalina.logger.FileLogger"
                     prefix="localhost_examples_log." suffix=".txt"
              timestamp="true"/>
          <Ejb   name="ejb/EmplRecord" type="Entity"
                 home="com.wombat.empl.EmployeeRecordHome"
               remote="com.wombat.empl.EmployeeRecord"/>
          <!-- PersistentManager: 영속적인 세션을 테스트 하기위해서는 아래
               섹션의 주석을 지워주십시오.
                         
               saveOnRestart: true 값일 경우, Catalina 가 shutdown 될 때
                 모든 살아있는 세션들은 다른 세팅과는 상관없이, Store 에
                 저장될 것입니다. startup 할 때 Store 에 있는 모든 세션들
                 은 자동으로 로드됩니다. expiration 이 지난 세션들은 양쪽
                 의 경우에 무시됩니다.
               maxActiveSessions: 0 이상의 값일 경우, 너무 많은 살아 있는 세
                 션이 있다면 몇몇은 없어져버리는 결과가 있을 수 있습니다. 
                 minIdleSwap 은 이것을 제한합니다. -1 은 무한 세션을 허가한
                 다는 뜻입니다. 0 은 사용 후 세션은 거의 모두 없어져 버립니다
                 - 사용자들에게 인지될 정도로 느리게 될 것입니다.
               minIdleSwap: 세션은 적어도 이기간 동안 idle 상태이어야 합니다.
                 (초 단위로) 없어지기 전에 말이죠.
               maxActiveSessions. 이것은 사이트가 아주 활발할 때 thrashing 을
                 피하게 합니다. -1 이나 0 은 minimum 이 없다는 뜻입니다 - 세션
                 은 어느때라도 소멸될 수 있습니다.
               maxIdleSwap: (초 단위로) 세션은 이 기간동안 idle 상태면 소멸됩
                 니다. minIdleSwap 이 보다 높다면, 그것으로 바꿔집니다.
                 이것은 정확하지 않습니다: 주기적으로 확인합니다. 
                 -1 은 maxActiveSessions 값으로 인해 소멸되어야 해도, 세션은
                 소멸되지 않음을 의미합니다. 0 이상으로 세팅되면, startup 할 때
                 Store 에 있는 모든 세션은 로드될 것을 보장합니다.
               maxIdleBackup: (Store 에 저장되었지만, active 메모리에 남아있는) 
                 세션은 백업될 것입니다. 이 기간동안 idle 상태고, startup 할 때
                 Store 에 있는 모든 세션들이 로드될 것입니다. -1 로 설정되었다면
                 세션은 백업되지 않을 것이고, 0 은 사용된 뒤에 잠깐 백업된다는
                 것을 의미합니다.

               Store 에 있는 세션을 지우려면, maxActiveSessions, maxIdleSwap,
               minIdleBackup 모두를 -1 로, saveOnRestart 는 false로 세팅한 후,
               Catalina 를 재시동합니다.
          -->
          <!--
          <Manager className="org.apache.catalina.session.PersistentManager"
              debug="0"
              saveOnRestart="true"
              maxActiveSessions="-1"
              minIdleSwap="-1"
              maxIdleSwap="-1"
              maxIdleBackup="-1">
                <Store className="org.apache.catalina.session.FileStore"/>
          </Manager>
          -->
          <Environment name="maxExemptions" type="java.lang.Integer"
                      value="15"/>
          <Parameter name="context.param.name" value="context.param.value"
                     override="false"/>
          <Resource name="jdbc/EmployeeAppDb" auth="SERVLET"
                    type="javax.sql.DataSource"/>
          <ResourceParams name="jdbc/TestDB">
            <parameter><name>user</name><value>sa</value></parameter>
            <parameter><name>password</name><value></value></parameter>
            <parameter><name>driverClassName</name>
              <value>org.hsql.jdbcDriver</value></parameter>
            <parameter><name>driverName</name>
              <value>jdbc:HypersonicSQL:database</value></parameter>
          </ResourceParams>
          <Resource name="mail/Session" auth="Container"
                    type="javax.mail.Session"/>
          <ResourceParams name="mail/session">
            <parameter>
              <name>mail.smtp.host</name>
              <value>localhost</value>
            </parameter>
          </ResourceParams>
        </Context>

      </Host>

    </Engine>

  </Service>

  <!-- MOD_WEBAPP 커넥터는 apache 1.3 과 서블릿 컨테이너로 Tomcat 4.0 을 연결하는
       데 쓰입니다. WebApp 모듈 배포판에 포함된 어떻게 만드는지에 대해 설명하는 
       README.txt 파일을 읽어보십시오. (또는 "jakarta-tomcat-connectors/webapp"
       CVS repository 를 확인해 보십시오.)

       Apache 쪽에서 설정하려면, 먼저 "httpd.conf" 에 설정되어진 "ServerName" 과 
       "Port" 지시자를 확인해야 합니다. 그리고, "httpd.conf" 파일 아래에 다음과
       같은 줄을 넣어줍니다:

         LoadModule webapp_module libexec/mod_webapp.so
         WebAppConnection warpConnection warp localhost:8008
         WebAppDeploy examples warpConnection /examples/

       이 후에 (필요하다면 Tomcat 을 재시동한 후) Apache 를 재시작하면 연결이 됩니
       다. Apache 를 통해서 "WebAppDeploy" 지시자에 있는 모든 어플리케이션들이 실
       행하는 것을 보실 수 있습니다.
  -->

  <!-- Apache-Connector Service 설정하기 -->
  <Service name="Tomcat-Apache">

    <Connector className="org.apache.catalina.connector.warp.WarpConnector"
     port="8008" minProcessors="5" maxProcessors="75"
     enableLookups="true"
     acceptCount="10" debug="0"/>

    <!-- "localhost" 를 Apache "ServerName" 에 설정된 값으로 대치해주십시오 -->
    <Engine className="org.apache.catalina.connector.warp.WarpEngine"
     name="Apache" debug="0" appBase="webapps">

      <!-- 하위 레벨에서 설정되지 않았다면 Global logger -->
      <Logger className="org.apache.catalina.logger.FileLogger"
              prefix="apache_log." suffix=".txt"
              timestamp="true"/>

      <!-- 이 Realm 이 여기 있기 때문에, 전체적으로 이 Realm 이 공유됩니다. -->
      <Realm className="org.apache.catalina.realm.MemoryRealm" />

    </Engine>

  </Service>

</Server> 

 

This entry was posted in WEB/WAS and tagged , . Bookmark the permalink.

댓글 남기기