• 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响应给客户端请求

    Donate捐赠

    如果我的文章帮助了你,可以赞赏我 1 元给我支持,让我继续写出更好的内容)

       

      (微信)                                        (支付宝)

    微信/支付宝 扫一扫

  • 相关阅读:
    套接字编程
    #define 的换行问题
    影响网站打开速度的10个因素
    C#字符串内多个空格合并成1个
    cssaucl论坛 购买域名和网络空间ftp上传
    MVC教程 索引
    DataTable和xls文件的相互转换;关闭服务端的Excel进程;用静态类写数据库配置类,数据库操作类;
    点CMS
    SQLServer 4类join查询:inner join,left join, right join, full outer join
    java的++i和i++的分析
  • 原文地址:https://www.cnblogs.com/moonsoft/p/9269025.html
Copyright © 2020-2023  润新知