Tomcat配置注意事项

5 篇文章 0 订阅

笔者之前调整Tomcat的配置文件的时候,碰到了一些问题,就是配置的项目路径无法被读取出来,导致部署的服务根本没有生效。之后笔者查了写资料,总结了下Tomcat的server.xml配置文件中修改配置的一些注意事项。


一、Server中的port属性

Server元素中的port参数表示Server接收shutdown指令的端口号,并不是某个web应用的访问端口号,如果访问这个端口的话,是找不到对应的服务的。port参数设置为-1可一禁掉该端口;

二、配置文件中第二个Connector标签的含义

一个service中可以建立多个connector连接器,但是并不是每一个连接器都是对应服务的端口连接的,像是配置protocol="AJP/1.3"这个AJP协议的连接器,它是用来负责和其他的HTTP服务器(如Apache)建立连接的。

拓展:
之所以使用Tomcat和其他服务器集成,是因为Tomcat可以用作Servlet/JSP容器,但是对静态资源的处理速度较慢,不如Apache和IIS等HTTP服务器。

三、Engine中的defaultHost属性

Host组件至少有一个,且其中一个的name必须与Engine组件的defaultHost属性相匹配。原因是defaultHost属性指定了默认的host名称,当发往本机的请求指定的host名称不存在时,一律使用defaultHost指定的host进行处理。

四、Host中的deployOnStartup和autoDeploy属性

这两个属性和Host内Web应用的自动部署有关,如果deployOnStartup和autoDeploy设置为true,则tomcat启动自动部署:当检测到新的Web应用或Web应用的更新时,会触发应用的部署(或重新部署)。二者的主要区别在于,deployOnStartup为true时,Tomcat在启动时检查Web应用,且检测到的所有Web应用视作新应用;autoDeploy为true时,Tomcat在运行时定期检查新的Web应用或Web应用的更新。除此之外,二者的处理相似。
这里面有个问题,就是明明设置了自动部署,可是服务起却还是要重启才能生效,就是因为只设置了deployOnStartup这个属性为true,而autoDeploy属性没有设置为true,还有就是要记住是定期检查,而不是实时部署。

五、Context中的docBase和path属性

  • docBase指定了该Web应用使用的WAR包路径,或应用目录。需要注意的是,在自动部署场景下,docBase不在appBase目录中,才需要指定;如果docBase指定的WAR包或应用目录就在appBase中,则不需要指定,因为Tomcat会自动扫描appBase中的WAR包和应用目录,指定了反而会造成问题
  • path指定了访问该Web应用的上下文路径,当请求到来时,Tomcat根据Web应用的 path属性与URI的匹配程度来选择Web应用处理相应请求。如果一个Context元素的path属性为””,那么这个Context是虚拟主机的默认Web应用;当请求的uri与所有的path都不匹配时,使用该默认Web应用来处理。需要注意的是,在自动部署场景下,不能指定path属性,path属性由配置文件的文件名、WAR文件的文件名或应用目录的名称自动推导出来。如扫描Web应用时,发现了xmlBase目录下的app1.xml,或appBase目录下的app1.WAR或app1应用目录,则该Web应用的path属性是”app1”。如果名称不是app1而是ROOT,则该Web应用是虚拟主机默认的Web应用,此时path属性推导为””。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘丶沐逸尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值