tomcat的server.xml常用配置

  tomcat的server.xml常用配置(一)

    知识的聚合也是一种力量!

                                                                                                                                                                                                                                 --题记              

                                                                                                                                                                                                                                 

    为了梳理以往学习的知识,方面今后的查看,提高效率,基于这样的目的,我开始博文写作。

    鄙人写的第一篇博文,内容多有疏漏。还望各位大牛见谅,批评指正。下面开始介绍。

    首先,当我们打开tomcat的server.xml文件,分析其结构。

<?xml version='1.0' encoding='utf-8'?>

    <Server >------  ------是tomcat的顶层元素,它代表整个Catalina Servlet容器。.由org.apache.catalina.Server接口来定义。

            属性 ------  ------1.port  指定容器的端口号,用于监听、负责关闭tomcat的请求。

                                       2.shutdown  发送到端口上,用于关闭tomcat服务器的命令。

                                       3.className  实现了org.apache.catalina.Server接口的类名,标准实现类是org.apache.catalina.core.StandardServer类。

                                         

             <Listener   /> ------  ------ 嵌套元素,可以加入到各个组件中,可以嵌套在Engine元素中,但至多只能嵌套一次。监听器元素,用于监听Context的整个生命周期,包   

                                                        括启动,运行,摧 毁。  由 org.apache.catalina.LifecycleListener 接口定义,使用时,必须实现该接口 。           

                              属性------  ------className  实现了org.apache.catalina.LifecycleListener 接口的类名。

                 ......

              <GlobalNamingResources>------  ------嵌套元素。服务器的全局JNDI资源元素,用于资源的配置,如数据源。

                        <Resource   />------  ------资源元素,主要用于配置数据源。可以直接配置在context元素下,这时数据源就只有他所属的应用能够访问。

                                           属性------  ------name  数据源名称,由自己定义的,一般能见名思意。

                                                   ------  ------auth    是连接池管理权属性,Container表示容器管理,由api提供,有“Container”  ,“Application” 等选择。

                                                   ------  ------type  是对象的类型,为该资源所需要的接口的实现类。如“javax.sql.DataSource”。

                                                   ------  ------maxActive  连接池的最大数据库连接数。设为0表示无限制。

                                                   ------  ------maxWait 如果超过此时间将接到异常。设为-1表示无限制。最大等待毫秒数, 单位为 ms, 超过时间会出错误信息。

                                                   ------  ------maxIdle  最大等待连接中的数量,设 0 为没有限制。

                                                  ------  ------url  数据源的路径

                                                  ------  ------username 数据库用户名

                                                  ------  ------password  密码



                        <ResourceLink  />------  ------  节省资源,共享同一个数据源,可以配置在Server.xml的GlobalNamingResources节点下,在应用中可以通过别名访问

                                           属性------  ------name  别名

                                                   ------  ------global 在GlobalNamingResources所定义的资源。

                                                   ------  ------type  是对象的类型,为该资源所需要的接口的实现类。如“javax.sql.DataSource”。

                                                  



                     <Service>------  ------连接器元素,由org.apache.catalina.Service 接口定义,它包含一个Engine 元素以及一个
                                                        或多个Connector 元素,这些Connector 元素共享同一个Engine元素。

                                                        负责处理所有Connector 所获得的客户请求。

                                                        默认的service是Catalina。

                                          属性------  ------name  service名


                             <Connector   />------  ------表示客户端和Service之间的连接,一个直接侦听来自浏览器的http请求,一个侦听来自其他WebServer 的请求。常用的属性就不介绍

                                                                             了。

                                           属性------  ------executor  线程池的名称

                                                   ------  ------maxThreads 最大线程数

                                                   ------  ------minSpareThreads 最少空闲线程数         

                                                   ------  ------maxSpareThreads 最大空闲线程数

                                                   ------  ------compression 打开压缩功能,on 或者 off

                                                   ------  ------compressionMinSize 启用压缩的输出内容大小

                                                   ------  ------noCompressionUserAgents 对于指定的浏览器,不启用压缩          如  noCompressionUserAgents="gozilla, traviata"  
                                                   ------  ------compressableMimeType 压缩类型          compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

                                         HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客

                                          户端的浏览器负责解 压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的

                                          是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率惊人


                              <Connector   />

                               ......

                                   <Engine>------  ------每一个service只能有一个engine,处理同一个service中所有connector接受到的客户请求。由org.apahce.catalina.Engine 接口定义。

                                                                        Engine 可以包含元素Logger、Realm、Value和Host。

                                                属性------  ------name  engine名

                                                        ------  ------defaultHost 默认主机名,<Engine>中的<Host>子元素中必须定义这一主机        
                                                             

                                                                     

                                                <Realm             className="org.apache.catalina.realm.LockOutRealm">------  ------其实就是一个存放用户名,密码及角色的一个“数据库”。

                                                                                                                                                                                                       Realm有下面几种,你也可以使用自己的Realm,只要实现

                                                                                                                                                                                                       org.apache.catalina.Realm就可以了。   

                                               UserDatabaseRealm,默认配置,只是用于少量用户
                                               授权信息存在用户数据JNDI资源中,该资源通常是一个XML文档 (conf/tomcat-users.xml)

                                               JNDIRealm 授权信息存在LDAP目录服务器中,通过JNDI提供者访问

                                               DataSourceRealm授权信息存在关系数据库中, 通过JNDI JDBC数据源访问
                                                                                 数据库中必须至少有两张表,表示用户及角色
                                                                                用户表必须至少有两个字段,用户名及密码
                                                                                角色表必须至少有两个字段,用户名及角色

                                               JDBCRealm授权信息存在关系数据库中, 通过JDBC驱动访问
                                                                     数据库中必须至少有两张表,表示用户及角色
                                                                     用户表必须至少有两个字段,用户名及密码
                                                                     角色表必须至少有两个字段,用户名及角色

                                              最后,如果你需要加密密码,那么需要只需要在Realm配置中指定所用的摘要算法就可以了

                                                             digist="MD5"

                                                                                                                  

</Realm >

                                                <Host>------  ------Host元素由Host接口定义。一个Engine元素可以包含多个Host元素,每个Host元素
                                                                               定义了一个虚拟主机,它包含了一个或多个Web 应用。在Host 元素中可以包含子元素
                                                                               Logger、Realm、Valve和Context。

                                                           属性------  ------className 指定实现Host接口的类.默认值为StandardHost                      

                                                                   ------  ------appBase    指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果没有此项,默认为

                                                                                                        <CATALINA_HOME>/webapps               

                                                                    ------  ------autoDeploy  如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进

                                                                                                         来,会自运发布这个WEB应用

                                                                    ------  ------unpackWARs   如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为

                                                                                                                WAR文件

                                                                    ------  ------alias  主机别名

                                                                    ------  ------deployOnStartup  如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用中的

                                                                                                                      server.xml没有相应的<Context>元素,将采用Tomcat默认的Context

                                                                    ------  ------name  主机名

                                                <Context  />------  ------它由Context接口定义,是使用最频繁的元素。每个<Context>元素代表了运行在虚拟主机上的单个Web应用。一个<Host>可

                                                                                       以包含多个<Context>元素。每个web应用有唯一的一个相对应的Context代表web应用自身。servlet容器为第一个web应用创建

                                                                                          一个。

                                                            属性 ------  ------className   指定实现Context的类,默认为StandardContext类

                                                                      ------  ------path  指定访问Web应用的URL入口,注意/myweb,而不是myweb了事。

                                                                      ------  ------reloadable  如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件

                                                                                                               的改变,如果监视到有class文件被更新,服务器自重新加载Web应用。

                                                                     ------  ------cookies 指定是否通过Cookies来支持Session,默认值为true

                                                                     ------  ------useNaming  指定是否支持JNDI,默认值为了true

                                                                                         

                                                <Valve  />------  ------功能和logger差不多  ,Catalina 会为该容器处理的所有请求创建访问日志 

                                                                      属性 ------  ------className   指定valve使用的类名,
                                                                               ------  ------directory      指定log文件的位置

                                                                               ------  ------pattern2个值,common方式记录远程主机名,或者ip地址,用户名,日期,第一行请求的字符串,http响

                                                 应代码,发送的字节数。combined方式记录的更多。

                                  

                                                                                                                                                                      

                                               </Host>


                                  </Engine>



                      </Service>



   </Server>


    一次访问Tomcat的处理过程
                 对于一次访问过程,主要有以下几个步骤,假设来自客户的请求为:http://localhost:8080/test/index.jsp。

                    (1)请求被发送到本机端口8080,被在那里侦听的HTTP Connector 获得;


               (2)Connector 把该请求交给它所在的Service 的Engine 来处理,并等待来自Engine 的回应;


               (3)Engine获得请求localhost/test/ index.jsp,匹配它所拥有的所有虚拟主机Host;


               (4)Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为当前Engine的默认主机);


               (5)localhost Host获得请求/test/index.jsp,匹配它所拥有的所有Context;


               (6)Host 匹配到路径为/test 的Context(如果匹配不到就把该请求交给路径名为""的Context去处理);


               (7)path="/test"的Context 获得请求/index.jsp,在它的mapping table 中寻找对应的Servlet;


               (8)Context匹配到URL PATTERN 为*.jsp的Servlet,对应于JspServlet类;


               (9)HttpServletRequest对象和HttpServletResponse 对象,作为参数调用JspServlet的 doGet或doPost方法;


               (10)Context把执行完了之后的HttpServletResponse 对象返回给Host;


               (11)Host把HttpServletResponse对象返回给Engine;


               (12)Engine把HttpServletResponse对象返回给Connector;


               (13)Connector 把HttpServletResponse对象返回给客户浏览器。




   


  




































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Tomcat是一个小型的轻量级应用服务器,主要用于开发和调试JSP程序。它可以作为Apache服务器的扩展运行,也可以作为独立的进程单独运行。对于常用配置方法,可以参考官方文档或者相关的教程。不同版本的Tomcat可能存在一些差异,因此最好根据具体的版本查看相应的配置方法。 关于常用配置,以下是一些常见的配置项和说明: 1. 端口配置Tomcat默认使用8080端口进行HTTP访问,可以通过修改server.xml文件中的Connector配置项来修改端口号。 2. 虚拟主机配置:可以通过在server.xml文件中添加Host配置项来配置虚拟主机,以支持多个域名或多个应用程序的部署。 3. 日志配置Tomcat的日志存储在logs目录下,默认情况下会生成catalina.out文件。可以通过修改logging.properties文件配置日志级别和输出方式。 4. 路径配置Tomcat的默认部署路径是webapps目录,可以将应用程序打包为WAR文件放置在该目录下。也可以通过修改server.xml文件中的Context配置项来指定其他路径。 5. 连接池配置Tomcat支持连接池来管理数据库连接,可以通过修改context.xml文件中的Resource配置项来配置连接池参数。 以上只是一些常见的配置项,具体的配置方法还取决于你的具体需求和Tomcat的版本。建议参考官方文档或相关资料,以获得更详细的配置指南。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Tomcat 简介,Tomcat 与Apache 的关系](https://blog.csdn.net/snoopy83101/article/details/4280453)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值