关闭

Tomcat之server.xml配置详解

251人阅读 评论(0) 收藏 举报
分类:

<Server>元素

它代表整个容器,是Tomcat实例的顶层元素。由org.apache.catalina.Server接口来定义。它包含一个<Service>元素。并且它不能做为任何元素的子元素。

  • <Server port="8005" shutdown="SHUTDOWN">
  • Server的实现类为org.apache.catalina.core.StandardServer,该类是利用org.apache.catalina.ServerFactory工厂创建的,里面采用了单例模式。
  • Port指定Tomcat监听shutdown命令端口。终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令。该属性是必须的。
  • shutdown指定终止Tomcat服务器时,发给Tomcat服务器的shutdown监听端口的字符串,该属性必须设置。


<Service>元素

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

<Service name="Catalina"><Service name="Apache">

第一个<Service>处理所有直接由Tomcat服务器接收的web客户请求。

第二个<Service>处理所有由Apache服务器转发过来的Web客户请求。

Service接口类的实现元素为:org.apache.catalina.core.StandardService

name定义Service的名字

<Engine>元素

每个Service元素只能有一个Engine元素。元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求。由org.apache.catalina.Engine接口定义,该接口的实现类为org.apache.catalina.core.StandardEngine。

<Engine name="Catalina" defaultHost="localhost">

  • defaultHost指定处理客户请求的默认主机名,在<Engine>中的<Host>子元素中必须定义这一主机
  • name定义Engine的名字
  • 在<Engine>可以包含如下元素<Logger>、<Realm>、<Value>、<Host>

<Host>元素

它由Host接口定义。一个Engine元素可以包含多个<Host>元素。每个<Host>的元素定义了一个虚拟主机。它包含了一个或多个web应用。

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

  • Host接口的实现类为StandardHost。
  • appBase指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录。如果没有此项,默认为<CATALINA_HOME>/webapps。
  • autoDeploy如果此项为true,表示tomcat服务处于运行状态时,能够检测appBase下的文件,如果有新的web应用加入进来,会自动发布这个WEB应用。
  • unpackWARs如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行。如果设置为false将直接运行WAR文件。

<Context元素>

它由Context接口定义。是使用最频繁的元素。每个<Context>元素代表了运行在虚拟主机上的单个web应用。一个<Host>可以包含多个<Context>元素。每个web应用有唯一的一个相对应的Context代表web应用自身。

<Context path="/sample" docBase="Sample" debug="0" reloadable="true">

  • 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。
  • 在<Context>元素中可以包含如下元素<Logger>、<Realm>、<Resource>、<ResourceParams>

<Connector>元素

由Connector接口定义。<Connector>元素代表与客户程序实际交互的组件,它负责接收客户请求,以及向客户返回响应结果。

<Connector port="8080" maxThread="50" minSpareThreads="25" maxSpareThread="75"
enableLookups
="false" redirectPort="8443" acceptCount="100" debug="0"
connectionTimeout
="20000" disableUploadTimeout="true" />
<Connection port="8009" enableLookups="false" redirectPort="8443" debug="0"
protocol
="AJP/1.3" />

第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定义了一个AJP Connector,它通过8090端口接收其它服务器转发过来的请求。

Connector元素共用属性
1>className指定实现Connector接口的类
2>enableLookups如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用

request.getRemoteHost方法返回客户机主机名.默认值为true
3>redirectPort指定转发端口.如果当前端口只支持non-SSL请求,在需要安全通信的场命,将把客户请求转
发至SSL的redirectPort端口
HttpConnector元素的属性
1>className实现Connector的类
2>port设定Tcp/IP端口,默认值为8080,如果把8080改成80,则只要输入http://localhost即可
因为TCP/IP的默认端口是80
3>address如果服务器有二个以上ip地址,此属性可以设定端口监听的ip地址.默认情况下,端口会监听服务
器上所有的ip地址
4>bufferSize设定由端口创建的输入流的缓存大小.默认值为2048byte
5>protocol设定Http协议,默认值为HTTP/1.1
6>maxThreads设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数
目.默认值为200
7>acceptCount设定在监听端口队列的最大客户请求数量,默认值为10.如果队列已满,客户必须等待.
8>connectionTimeout定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间
JkConnector的属性
1>className实现Connector的类
2>port设定AJP端口号
3>protocol必须设定为AJP/1.3






0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:42894次
    • 积分:918
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:30篇
    • 译文:0篇
    • 评论:1条