Server.xml包含的元素有<Server>、<Service>、<Connector>、<Engine>、<Host>、<Context>、<logger>、<Value>、<Realm>等,它们可分为四大类: web
1、顶层类元素:有<Server>和<Service>。它位于整个配置文件的顶层。 apache
2、链接器类元素:有<Connector>。客户和容器类元素的通信接口。 浏览器
3、容器类元素:有<Engine>、<Host>和<Context>。处理客户请求而且生成响应结果。 tomcat
4、嵌套类元素:有<logger>、<Value>和<Realm>。能够加入到容器中的元素 服务器
配置文件结构为:
<server> app
<service> webapp
<connector/> url
<connector/> spa
<engine> 线程
<host>
<context/>
</host>
<host>
<context/>
<context/>
</host>
</engine>
</service>
<server>
<Server>元素
<Server>是Tomcat实例的顶层元素,由org.apache.catalina.Server接口定义,它能够包含一个或多个<Service>元素,而且不能作为任何元素的子元素。一个<Server>是一个提供完整JVM的独立组件,它能够表明整个容器,但它自己不是一个容器,不能够定义<value>或<loggers>之类的子组件。
属性说明:
属性 |
说明 |
port |
指定一个端口,这个端口负责监听关闭Tomcat的请求 |
shut down |
向以上端口发送的关闭服务器的命令字符串,一般为“SHUTDOWN” |
对于一个已经开启的tomcat服务器,能够在cmd下使用telnet localhost 8005命令进行链接,而后输入“SHUTDOWN” 命令就能够关闭服务器。
<Service>元素
Service是一个集合,它由一个或者多个Connector以及一个Engine组成,这个Engine负责处理全部Connector所得到的客户请求。每一个Service元素只能有一个Engine元素。Service自己也不是容器。
属性说明:
属性 |
说明 |
name |
Service的名称 |
<Connector>元素
<Connector>是直接与用户交互的组件,负责接受用户请求和向客户返回响应结果。
属性说明:
属性 |
说明 |
port |
Connector所监听的端口。在浏览器中能够经过输入url:port的方式提交给对应的Connector。由于浏览器的默认端口是80,因此若是把Connector的port设成80的话,能够直接使用url进行访问,不用在后边再跟一个端口号。 |
protocol |
设定Http协议,默认是HTTP/1.1 |
minThreads |
服务器启动时建立的处理用户请求的线程数 |
maxThreads |
能够建立的最大的处理用户请求的线程数 |
minSpareThreads |
最小备用线程数 |
maxSpareThreads |
最大备用线程数 |
acceptCount |
当全部可使用的处理请求的线程都被用光时,能够放处处理队列中的请求数,超过这个数的请求将不予处理,而返回Connection refused错误。 |
redirectPort |
服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号。(即当请求是https时,将它转发到的端口) |
enableLookups |
若是为true,表示支持域名解析,则能够在web应用中经过调用request.getRemoteHost()进行DNS查询来获得远程客户端的实际主机名;若为false则不进行DNS 查询,而是返回其ip地址。默认值为true。 |
connectionTimeout |
等待超时的时间数(以毫秒为单位),若是为-1表示不限制客户链接的时间。 |
<Engine>元素
它处理在同一个<Service>中全部<Connector>元素接收到的客户请求。它匹配请求和本身的虚拟主机,并将请求发给对应的<Host>处理,默认的主机是localhost。
属性说明:
属性 |
说明 |
name |
engine的名称,对应目录 /conf /Catalina |
defaultHost |
默认的处理请求的虚拟主机,至少与下面一个Host的name属性同样。对应 /conf /Catalina /localhost |
Debug |
日志等级。 |
<Host>元素
一个<Engine>元素能够包含多个<Host>元素,每一个<Host>的元素定义一个虚拟主机,它包含一个或多个web应用。
属性说明:
属性 |
说明 |
name |
虚拟主机名,对应目录 /conf /Catalina /localhost |
appBase |
指定虚拟主机的目录,默认为/webapps。它将请求url与该虚拟主机的context进行匹配,并把请求转给对应的context来处理。 |
Debug |
日志等级。 |
autoDeploy |
默认为true,表示若是有新的WEB应用放入appBase而且Tomcat在运行的状况下,自动载入应用。 |
unpackWARs |
若是设置为true,表示把war文件先展开再运行。若是为false则直接运行war文件。 |
<Context>元素
表明运行在虚拟主机上的单个web应用。一个<Host>能够包含多个<Context>元素。每一个web应用有惟一个相对应的Context表明web应用自身。
属性说明:
属性 |
说明 |
path |
Web应用名,在使用url访问host下的web应用时,经过http://localhst/ website 的形式。其中localhost为上文所说的host的name,而website就是这里的path。 也就是说当一具请求到来时,engine先根据host name = localhost来肯定所要求的主机,再根据context path = website肯定用户所请求的web应用。 |
docBase |
Web应用的具体存放路径 |
Debug |
日志等级。 |
autoDeploy |
默认为true,表示若是有新的WEB应用放入appBase而且Tomcat在运行的状况下,自动载入应用。 |
unpackWARs |
若是设置为true,表示把war文件先展开再运行。若是为false则直接运行war文件。 |
产生问题:
1.配置host属性后没法访问配置的信息。
如图 appBase 为项目编译的跟目录 若是不配置 Context的话 则默认访问根目录下的ROOT文件夹,因此配置一个默认访问的便可。