Tomcat配置文件server.xml分析

本文力求,分析清楚 tomcat 的 server.xml 文件,逐步完善更新

常用来,配置tomcat启动,端口号;配置编码等。

apache-tomcat-9.0.10/conf/server.xml 文件如下:

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <!--
  3   Licensed to the Apache Software Foundation (ASF) under one or more
  4   contributor license agreements.  See the NOTICE file distributed with
  5   this work for additional information regarding copyright ownership.
  6   The ASF licenses this file to You under the Apache License, Version 2.0
  7   (the "License"); you may not use this file except in compliance with
  8   the License.  You may obtain a copy of the License at
  9 
 10       http://www.apache.org/licenses/LICENSE-2.0
 11 
 12   Unless required by applicable law or agreed to in writing, software
 13   distributed under the License is distributed on an "AS IS" BASIS,
 14   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 15   See the License for the specific language governing permissions and
 16   limitations under the License.
 17 -->
 18 <!-- Note:  A "Server" is not itself a "Container", so you may not
 19      define subcomponents such as "Valves" at this level.
 20      Documentation at /docs/config/server.html
 21  -->
 22 <Server port="8005" shutdown="SHUTDOWN">
 23   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
 24   <!-- Security listener. Documentation at /docs/config/listeners.html
 25   <Listener className="org.apache.catalina.security.SecurityListener" />
 26   -->
 27   <!--APR library loader. Documentation at /docs/apr.html -->
 28   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
 29   <!-- Prevent memory leaks due to use of particular java/javax APIs-->
 30   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
 31   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
 32   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
 33 
 34   <!-- Global JNDI resources
 35        Documentation at /docs/jndi-resources-howto.html
 36   -->
 37   <GlobalNamingResources>
 38     <!-- Editable user database that can also be used by
 39          UserDatabaseRealm to authenticate users
 40     -->
 41     <Resource name="UserDatabase" auth="Container"
 42               type="org.apache.catalina.UserDatabase"
 43               description="User database that can be updated and saved"
 44               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
 45               pathname="conf/tomcat-users.xml" />
 46   </GlobalNamingResources>
 47 
 48   <!-- A "Service" is a collection of one or more "Connectors" that share
 49        a single "Container" Note:  A "Service" is not itself a "Container",
 50        so you may not define subcomponents such as "Valves" at this level.
 51        Documentation at /docs/config/service.html
 52    -->
 53   <Service name="Catalina">
 54 
 55     <!--The connectors can use a shared executor, you can define one or more named thread pools-->
 56     <!--
 57     <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
 58         maxThreads="150" minSpareThreads="4"/>
 59     -->
 60 
 61 
 62     <!-- A "Connector" represents an endpoint by which requests are received
 63          and responses are returned. Documentation at :
 64          Java HTTP Connector: /docs/config/http.html
 65          Java AJP  Connector: /docs/config/ajp.html
 66          APR (HTTP/AJP) Connector: /docs/apr.html
 67          Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
 68     -->
 69     <Connector port="8080" protocol="HTTP/1.1"
 70                connectionTimeout="20000"
 71                redirectPort="8443" />
 72     <!-- A "Connector" using the shared thread pool-->
 73     <!--
 74     <Connector executor="tomcatThreadPool"
 75                port="8080" protocol="HTTP/1.1"
 76                connectionTimeout="20000"
 77                redirectPort="8443" />
 78     -->
 79     <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
 80          This connector uses the NIO implementation. The default
 81          SSLImplementation will depend on the presence of the APR/native
 82          library and the useOpenSSL attribute of the
 83          AprLifecycleListener.
 84          Either JSSE or OpenSSL style configuration may be used regardless of
 85          the SSLImplementation selected. JSSE style configuration is used below.
 86     -->
 87     <!--
 88     <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
 89                maxThreads="150" SSLEnabled="true">
 90         <SSLHostConfig>
 91             <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
 92                          type="RSA" />
 93         </SSLHostConfig>
 94     </Connector>
 95     -->
 96     <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
 97          This connector uses the APR/native implementation which always uses
 98          OpenSSL for TLS.
 99          Either JSSE or OpenSSL style configuration may be used. OpenSSL style
100          configuration is used below.
101     -->
102     <!--
103     <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
104                maxThreads="150" SSLEnabled="true" >
105         <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
106         <SSLHostConfig>
107             <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
108                          certificateFile="conf/localhost-rsa-cert.pem"
109                          certificateChainFile="conf/localhost-rsa-chain.pem"
110                          type="RSA" />
111         </SSLHostConfig>
112     </Connector>
113     -->
114 
115     <!-- Define an AJP 1.3 Connector on port 8009 -->
116     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
117 
118 
119     <!-- An Engine represents the entry point (within Catalina) that processes
120          every request.  The Engine implementation for Tomcat stand alone
121          analyzes the HTTP headers included with the request, and passes them
122          on to the appropriate Host (virtual host).
123          Documentation at /docs/config/engine.html -->
124 
125     <!-- You should set jvmRoute to support load-balancing via AJP ie :
126     <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
127     -->
128     <Engine name="Catalina" defaultHost="localhost">
129 
130       <!--For clustering, please take a look at documentation at:
131           /docs/cluster-howto.html  (simple how to)
132           /docs/config/cluster.html (reference documentation) -->
133       <!--
134       <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
135       -->
136 
137       <!-- Use the LockOutRealm to prevent attempts to guess user passwords
138            via a brute-force attack -->
139       <Realm className="org.apache.catalina.realm.LockOutRealm">
140         <!-- This Realm uses the UserDatabase configured in the global JNDI
141              resources under the key "UserDatabase".  Any edits
142              that are performed against this UserDatabase are immediately
143              available for use by the Realm.  -->
144         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
145                resourceName="UserDatabase"/>
146       </Realm>
147 
148       <Host name="localhost"  appBase="webapps"
149             unpackWARs="true" autoDeploy="true">
150 
151         <!-- SingleSignOn valve, share authentication between web applications
152              Documentation at: /docs/config/valve.html -->
153         <!--
154         <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
155         -->
156 
157         <!-- Access log processes all example.
158              Documentation at: /docs/config/valve.html
159              Note: The pattern used is equivalent to using pattern="common" -->
160         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
161                prefix="localhost_access_log" suffix=".txt"
162                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
163 
164       </Host>
165     </Engine>
166   </Service>
167 </Server>
View Code

 如其中一段:

不同的Connector有不同的作用,常用的8080是tomcat应用访问的端口

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

8009是ajp/1.3协议端口,apache转发到tomcat时用的端口,然后通过8443转发到8080端口,Connector监听到8080端口的访问后交给Service判断url地址,处理完成后再通过8443转发到8009,由apache响应给客户端请求

猜你喜欢

转载自www.cnblogs.com/moonsoft/p/9269025.html