加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

一文带你详解相识Tomcat的Server设置!

发布时间:2018-11-14 06:47:20 所属栏目:业界 来源:Tomcat
导读:媒介 Tomcat附属于Apache基金会,是开源的轻量级Web应用处事器,行使很是普及。server.xml是Tomcat中最重要的设置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的设置,可以实现对Tomcat中各个组件的节制。因此,进修serve

可是,必要留意的是,在自动陈设场景下(设置文件位于xmlBase中),不能指定path属性,path属性由设置文件的文件名、WAR文件的文件名或应用目次的名称自动推导出来。如扫描Web应用时,发明白xmlBase目次下的app1.xml,或appBase目次下的app1.WAR或app1应用目次,则该Web应用的path属性是”app1”。假如名称不是app1而是ROOT,则该Web应用是假造主机默认的Web应用,此时path属性推导为””。

reloadable属性指示tomcat是否在运行时监控在WEB-INF/classes和WEB-INF/lib目次下class文件的窜改。假如值为true,那么当class文件窜改时,会触发Web应用的从头加载。在开拓情形下,reloadable配置为true便于调试;可是在出产情形中配置为true会给处事器带来机能压力,因此reloadable参数的默认值为false。

下面来看自动陈设时,xmlBase下的XML设置文件app1.xml的例子:

一文带你详解相识Tomcat的Server设置!

在该例子中,docBase位于Host的appBase目次之外;path属性没有指定,而是按照app1.xml自动推导为”app1”;因为是在开拓情形下,因此reloadable配置为true,便于开拓调试。

自动陈设举例

最典范的自动陈设,就是当我们安装完Tomcat后,$TOMCAT_HOME/webapps目次下有如下文件夹:

一文带你详解相识Tomcat的Server设置!

当我们启动Tomcat后,可以行使http://localhost:8080/来会见Tomcat,着实会见的就是ROOT对应的Web应用;我们也可以通过http://localhost:8080/docs来会见docs应用,同理我们可以会见examples/host-manager/manager这几个Web应用。

(3)server.xml中静态陈设Web应用

除了自动陈设,我们也可以在server.xml中通过元素静态陈设Web应用。静态陈设与自动陈设是可以共存的。在现实应用中,并不保举行使静态陈设,由于server.xml 是不动作态重加载的资源,处事器一旦启动了往后,要修改这个文件,就得重启处事器才气从头加载。而自动陈设可以在Tomcat运行时通过按期的扫描来实现,不必要重启处事器。

server.xml中行使Context元素设置Web应用,Context元素应该位于Host元素中。举譬喻下:

一文带你详解相识Tomcat的Server设置!

docBase:静态陈设时,docBase可以在appBase目次下,也可以不在;本例中,docBase不在appBase目次下。

path:静态陈设时,可以显式指定path属性,可是如故受到了严酷的限定:只有当自动陈设完全封锁(deployOnStartup和autoDeploy都为false)或docBase不在appBase中时,才可以配置path属性。在本例中,docBase不在appBase中,因此path属性可以配置。

reloadable属性的用法与自动陈设时沟通。

四、焦点组件的关联

1、整体相关

焦点组件之间的整体相关,在上一部门有所先容,这里总结一下:

Server元素在最顶层,代表整个Tomcat容器;一个Server元素中可以有一个或多个Service元素。

Service在Connector和Engine表面包了一层,把它们组装在一路,对外提供处事。一个Service可以包括多个Connector,可是只能包括一个Engine;Connector吸取哀求,Engine处理赏罚哀求。

Engine、Host和Context都是容器,且 Engine包括Host,Host包括Context。每个Host组件代表Engine中的一个假造主机;每个Context组件代表在特定Host上运行的一个Web应用。

2、怎样确定哀求由谁处理赏罚?

当哀求被发送到Tomcat地址的主机时,怎样确定最终哪个Web应用来处理赏罚该哀求呢?

(1)按照协媾和端标语选定Service和Engine

Service中的Connector组件可以吸取特定端口的哀求,因此,当Tomcat启动时,Service组件就会监听特定的端口。在第一部门的例子中,Catalina这个Service监听了8080端口(基于HTTP协议)和8009端口(基于AJP协议)。当哀求进来时,Tomcat便可以按照协媾和端标语选定处理赏罚哀求的Service;Service一旦选定,Engine也就确定。

通过在Server中设置多个Service,可以实现通过差异的端标语来会见统一台呆板上陈设的差异应用。

(2)按照域名或IP地点选定Host

Service确定后,Tomcat在Service中探求名称与域名/IP地点匹配的Host处理赏罚该哀求。假如没有找到,则行使Engine中指定的defaultHost来处理赏罚该哀求。在第一部门的例子中,因为只有一个Host(name属性为localhost),因此该Service/Engine的全部哀求都交给该Host处理赏罚。

(3)按照URI选定Context/Web应用

这一点在Context一节有具体的声名:Tomcat按照应用的 path属性与URI的匹配水平来选择Web应用处理赏罚响应哀求,这里不再赘述。

(4)举例

以哀求http://localhost:8080/app1/index.html为例,起首通过协媾和端标语(http和8080)选定Service;然后通过主机名(localhost)选定Host;然后通过uri(/app1/index.html)选定Web应用。

3、怎样设置多个处事

通过在Server中设置多个Service处事,可以实现通过差异的端标语来会见统一台呆板上陈设的差异Web应用。

在server.xml中设置多处事的要领很是简朴,分为以下几步:

(1)复制元素,放在当前后头。

(2)修改端标语:按照必要监听的端标语修改元素的port属性;必需确保该端口没有被其他历程占用,不然Tomcat启动时会报错,而无法通过该端口会见Web应用。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读