server.xml의 영어 설명부분을 한글로 번역해 놓았다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 |
<!-- 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> |