Tomcat은 웹 어플리케이션 서버로서, 대규모 트래픽 처리를 위해서는 적절한 튜닝이 필요합니다. 이를 위해 다음과 같은 방법들을 고려해볼 수 있습니다.
{
"Server": {
"GlobalNamingResources": {
"Resource": {
"_name": "UserDatabase",
"_auth": "Container",
"_type": "org.apache.catalina.UserDatabase",
"_description": "User database that can be updated and saved",
"_factory": "org.apache.catalina.users.MemoryUserDatabaseFactory",
"_pathname": "conf/tomcat-users.xml"
}
},
"Service": {
"Connector": {
"_port": "8080",
"_protocol": "HTTP/1.1",
"_connectionTimeout": "20000",
"_redirectPort": "8443"
},
"Engine": {
"Realm": {
"Realm": {
"_className": "org.apache.catalina.realm.UserDatabaseRealm",
"_resourceName": "UserDatabase"
},
"_className": "org.apache.catalina.realm.LockOutRealm"
},
"Host": {
"Valve": {
"_className": "org.apache.catalina.valves.AccessLogValve",
"_directory": "logs",
"_prefix": "localhost_access_log",
"_suffix": ".txt",
"_pattern": "%h %l %u %t \"%r\" %s %b"
},
"_name": "localhost",
"_appBase": "webapps",
"_unpackWARs": "true",
"_autoDeploy": "true"
},
"_name": "Catalina",
"_defaultHost": "localhost"
},
"_name": "Catalina"
},
"_port": "8005",
"_shutdown": "SHUTDOWN"
}
}
Server
<Server port="8005" shutdown="SHUTDOWN">
요소 는 전체 Catalina 서블릿 컨테이너를 나타냅니다. 따라서 구성 파일에서 가장 바깥쪽에 있는 단일 요소여야 합니다 conf/server.xml. 속성은 서블릿 컨테이너 전체의 특성을 나타냅니다.
| Attribute | Description |
|---|---|
| port | 이 서버가 종료 명령을 기다리는 TCP/IP 포트 번호입니다. -1종료 포트를 비활성화하려면 로 설정하십시오 |
| shutdown | Tomcat을 종료하기 위해 지정된 포트 번호에 대한 TCP/IP 연결을 통해 수신해야 하는 명령 문자열입니다. |
GlobalNamingResources
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
GlobalNamingResources 요소는 서버 의 글로벌 JNDI 자원을 정의 합니다 .
이러한 리소스는 서버의 전역 JNDI 리소스 컨텍스트에 나열됩니다. 이 컨텍스트는 JNDI 리소스 HOW-TO 에 설명된 웹 애플리케이션별 JNDI 컨텍스트와 다릅니다 . 이 요소에 정의된 리소스는 요소 와 명시적으로 연결하지 않는 한 웹 애플리케이션별 컨텍스트에서 볼 수 없습니다 .
| Attribute | Description |
|---|---|
| name | 컨텍스트 를 기준으로 생성할 리소스의 이름입니다 |
| type | 이 리소스에 대한 조회를 수행할 때 웹 애플리케이션에서 예상하는 정규화된 Java 클래스 이름입니다. |
Service
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
서비스 요소는 들어오는 요청을 처리하기 위해 단일 엔진 구성 요소를 공유 하는 하나 이상의 커넥터 구성 요소의 조합을 나타냅니다. 하나 이상의 Service 요소가 Server 요소 내에 중첩될 수 있습니다 .
Service 요소 내에 중첩될 수 있는 유일한 구성 요소는 정확히 하나의 Engine 요소가 뒤따르는 하나 이상의 Connector 요소입니다 .
| Attribute | Description |
|---|---|
| name | 표준 Catalina 구성 요소를 사용하는 경우 로그 메시지에 포함되는 이 서비스 의 표시 이름입니다 . 특정 서버 와 연결된 각 서비스 의 이름은 고유해야 합니다. |