Download and Installation
Download Core package from Tomcat official website: https://tomcat.apache.org/download-90.cgi
Extraction command:
tar -zxvf apache-tomcat-9.0.98.tar.gz
mv apache-tomcat-9.0.98 ../servers/apache-tomcat-9.0.98
Core Configuration File
Core configuration is in conf/server.xml file.
Main Tag Details
Server Tag
- port: Shutdown server listening port
- shutdown: Shutdown server command string
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina"></Service>
</Server>
Service Tag
Used to create Service instance, default uses: org.apache.catalina.core.StandardService
Sub-tags include:
- Listener: Used to add lifecycle listener for Service
- Executor: Used to configure shared thread pool for Service
- Connector: Used to configure Connector included in Service
- Engine: Used to configure Servlet container engine corresponding to Connector
Executor Tag (Thread Pool Configuration)
<Executor name="commonThreadPool"
namePrefix="thread-exec-"
maxThreads="200"
minSpareThreads="100"
maxIdleTime="60000"
maxQueueSize="Integer.MAX_VALUE"
prestartminSpareThreads="false"
threadPriority="5"
className="org.apache.catalina.core.StandardThreadExecutor"/>
Key attribute descriptions:
- name: Thread pool name, used for specifying in Connector
- maxThreads: Maximum threads in pool
- minSpareThreads: Active thread count (core pool thread count), won’t be destroyed
- maxIdleTime: Thread idle time, idle threads will be destroyed after exceeding
- maxQueueSize: Maximum thread queue number before execution
Connector Tag
Used to create Connector instance. Default configures two connectors: one supporting HTTP protocol, one supporting AJP protocol.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Key attributes:
- port: Port number
- protocol: Supported access protocol, default is HTTP/1.1
- connectionTimeout: Wait timeout after receiving connection
- redirectPort: SSL redirect port
- executor: Specify shared thread pool name
- URIEncoding: URI character encoding, Tomcat8.x defaults to UTF-8
Engine Tag
Servlet engine
- name: Specify Engine name, default is Catalina
- defaultHost: Default virtual host name
<Engine name="Catalina" defaultHost="localhost"></Engine>
Context Tag
Used to configure a Web application
- docBase: Web application directory or War package deployment path
- path: Web application’s Context path
<Host name="www.abc.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context docBase="web_demo" path="/web3"></Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>