tomcat配置文件详解

1.Server.xml

删除了不重要的部分

<?xml version="1.0" encoding="UTF-8"?>

<Server port="8005" shutdown="SHUTDOWN">
  <!-- 一个“service”是一个或多个共享的“connector”的集合
		注:“service”本身不是“Container”,
		因此,您可能无法在此级别定义诸如“valve”之类的子组件
		因为只有容器之间才能使用管道进行连接
   -->
  <Service name="Catalina">

    <!--共享线程池配置,默认情况下该配置被注释了
		但是并不是说没有使用线程池,而是在每个Connector中有一个私有的线程池
		可以单独为每一个Connector配置线程池,也可以使用共享的线程池
		如果配置了该线程池,我们可以让每个Connector共享该线程池
		把Executor的name值配置到Connector标签的executor属性上
		那么该Connector就是使用的共享线程池了,否则还是使用的共享的
	-->
    <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    -->
    <!-- 一个使用了共享线程池的连接器 -->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->

    <!-- 
    	一个连接池,表示一个处理请求的端点,并进行响应
    	下面定义了一个http
        定义一个非ssl/TLS HTTP/1.1 端口为8080的连接器
        也就是一个普通的处理http请求的连接器
        redirectPort:当用户用http请求某个资源,而该资源本身又被设置了必须要https方式访问,此时Tomcat会自动重定向到这个redirectPort设置的https端口。
        
    -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443
         This connector uses the NIO implementation. The default
         SSLImplementation will depend on the presence of the APR/native
         library and the useOpenSSL attribute of the
         AprLifecycleListener.
         Either JSSE or OpenSSL style configuration may be used regardless of
         the SSLImplementation selected. JSSE style configuration is used below.
    -->
   
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
   
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


    <!-- 引擎表示处理每个请求的入口点,Tomcat的引擎实现单独分析请求中包含的HTTP标头,并将他们转到适当的主机(虚拟主机)。
	defalutHost:当没有找到对应的虚拟主机的时候,会交给defaultHost
-->
    <Engine name="Catalina" defaultHost="localhost">

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
		
		<!--
			每一个Host代表了一个虚拟主机
			一个Engine可以存在多个Host
			tomcat将根据请求头中的Host决定交给哪个Host
			appBase:这个目录下面的子目录将自动被部署为应用,且war文件将被自动解压缩并部署为应用,默认为tomcat下webapps目录
			如果不想访问默认ROOT目录,修改这里,同理如果想访问配置目录下应用为默认应用,在此目录下新增ROOT目录文件夹。
			可以是一个相对路径,相对于${catalina.base}
			也可以是一个绝对路径
			unpackWARs:表示是否要解压war包,如果为true,那么war包将会被解压
			如果为false,war包不会被解压,将会直接加载该war包
			autoDeploy:自动部署,如果为true
			重点:运行时
			1.监听appBase路径下的资源变化,如果有新的应用,将会自动进行部署,如果有新的war包也会进行部署,是否解压.war是由unpackWARS决定的
			2.如果/WEB-INF/web.xml文件(或定义为WatchedResource的任何其他资源)已更新,则重新加载Web应用程序。
			3.三个级别的context.xml文件发生变化
			4.如果删除了Web应用程序的docBase,则将其取消部署。请注意,在Windows上,这假定已启用了防锁定功能(请参阅context.xml配置),否则无法删除正在运行的Web应用程序的资源。
			deployOnStartup:不配置默认为true
			1.任何context.xml都将首先部署。
			2.然后将部署未由任何context.xml引用的Web应用程序(也就是appBase路径下的解压了的web应用)。如果他们在appBase中具有关联的.war文件,并且该文件比解压的Web应用程序新,则解压了的web程序将被删除,并且将从.war文件中重新部署
		-->
		<Host name="localhost"  appBase="webapps"
			unpackWARs="true" autoDeploy="true" deployOnStartup="true">
		
		<!--
			一个Context标签代表一个web应用
			docBase:代表该web应用的资源路径,路径相对于appBase
			需要注意的是:如果deployOnStartup为true,也就是说appBase路径下的项目都被部署了
			且在这里又配置了一个appBase路径下的项目,那么该项目将被部署两次
			path:决定当前应用的访问路径
		-->
		<Context docBase="tomcatRequest" path="/tomcat" reloadable="true"></Context> 
		<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
			   prefix="localhost_access_log" suffix=".txt"
			   pattern="%h %l %u %t &quot;%r&quot; %s %b" />

		</Host>
    </Engine>
  </Service>
</Server>

Context.xml

1. 在tomcat 5.5之前
Context体现在/conf/server.xml中的Host里的元素,它由Context接口定义。每个<Context元素代表了运行在虚拟主机上的单个Web应用
Xml代码

<Context path="/kaka" docBase="kaka" reloadbale="true"> 

1、path:即要建立的虚拟目录,,注意是/kaka,它指定访问Web应用的 上下文根,如http://localhost:8080/kaka/****
2、docBase:为应用程序的路径或WAR文件存放的路径 ,可以是绝对路径 ,也可是相对路径,相对路径是相对于
3、reloadable:如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改变,如果监视到有class文件被更新,服务器自动重新加载Web应用,这样我们可以在不重起tomcat的情况下改变应用程序
一个Host元素中嵌套任意多的Context元素。每个Context的路径必须是惟一的,由path属性定义。另外,你必须定义一个path=“”的context,这个Context称为该虚拟主机的缺省web应用,用来处理那些不能匹配任何Context的Context路径的请求。
2. 在tomcat 5.5之后
不推荐在server.xml中进行配置,而是在/conf/context.xml中进行独立的配置。因为 server.xml 是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而 context.xml 文件则不然, tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器 。

<Context path="/kaka" docBase="kaka" debug="0" reloadbale="true" privileged="true"> 
	<WatchedResource>WEB-INF/web.xml</WatchedResource> 
	<WatchedResource>WEB-INF/kaka.xml</WatchedResource> 监控资源文件,如果web.xml || kaka.xml改变了,则自动重新加载改应用。 
	<Resource name="jdbc/testSiteds" 表示指定的jndi名称 
		auth="Container" 表示认证方式,一般为Container 
		type="javax.sql.DataSource" 
		maxActive="100" 连接池支持的最大连接数 
		maxIdle="30" 连接池中最多可空闲maxIdle个连接 
		maxWait="10000" 连接池中连接用完时,新的请求等待时间,毫秒 
		username="root" 表示数据库用户名 
		password="root" 表示数据库用户的密码 
		driverClassName="com.mysql.jdbc.Driver" 表示JDBC DRIVER 
		url="jdbc:mysql://localhost:3306/testSite" 表示数据库URL地址 
		/> 
</Context> 

context.xml的三个作用范围

  1. tomcat server级别:
    在/conf/context.xml里配置
  2. Host级别:
    在/conf/${EngineName}/${hostName}里添加context.xml,继而进行配置
  3. web app 级别:
    在/conf/${EngineName}/${hostName}里添加${webAppName}.xml,继而进行配置

这三种级别的context.xml之间是继承关系,缺省就找上一级

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值