揭开Tomcat的神秘面纱

网友投稿 762 2022-10-01

揭开Tomcat的神秘面纱

揭开Tomcat的神秘面纱

了解tomcat

总所周知,我们的web应用在上线时都要将web应用打包成一个war包到tomcat的目录下进行解压。然后通过浏览器去发URL的请求。那么请求必定是要先经过Tomcat 的。那么Tomcat拿到请求后是如何应对的呢?

手写 tomcat 配置文件

所有的服务器都有他自己的属性,当然 tomcat 也不例外。无轮任何应用想要与外界通讯必须就要去管理自己的端口,所以tomcat的属性配置文件server.xml文件诞生了。这个文件集中管理了tomcat的属性配置。

server.xml 配置文件在 tomcat 目录下的conf 目录下,我们先大概了解一下tomcat的配置文件:

顶层元素: Server和Service标签 是整个配置文件的根元素,可以与一组和一个相连。

所以我们可以写出如下的一种配置结构

我们在 Server 标签中 可以配置 port=”8005″ shutdown=”SHUTDOWN” shutdown属性表示官兵Server服务,port 表示接受shutdown指令的端口号,只要将 port = “-1” 即可禁掉该端口.

Server 的主要作用是提供一个让客户端可以访问 Service 的接口,同时对 service 进行维护和管理,包括Service的初始化,运行,销毁以及找到客户端要找的Service。

Service中有一个 name=”Catalina” 属性,因为tomcat可以提供多个服务,所以这个属性是它的 标识名 .

Service 的主要作用是将 Connector 和 Engine 组合在一起。 Service可有包含多个 Connector 但是只能有一个 Engine

连接器: Connector Connector 代表了外部客户端发送请求到特定的Service接口,同时也是从外部接受请求的特定接口。它创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine进行处理,并把 Request和Response对象 传给Engine。

port=”8080″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″ ;port 应该很熟悉了,8080是我们对外开放的端口,我们服务器通常开放的端口是80 而tomcat通常是不需要直接对外开放的,而是使用nginx等服务器来做代理。 protocol 属性这里是监听的connectionTimeout 连接超时的时间, redirectPort 重定向端口。

容器:Engine Host Context Engine容器的功能是处理请求并返回。Engine 从一个或多个 Connector 中接收请求处理后返回给 Connector . Host Context 是 Engine 的子容器

name=”Catalina” defaultHost=”localhost” ; name属性用于日志和错误信息,整个Server应该唯一。 defaultHost 指定默认的host名字,当发往本机的host不存在时使用默认的host。并且 defaultHos 必须与 Host中的一个name属性匹配。

Host 组件代表虚拟主机,是运行多个Web应用(一个Context代表一个web应用),并负责安装,展开,启动,结束每个web应用。

Host 代表一个虚拟主机,对应服务器中一个网络实体(mmmnnaa.com,106.106.106.25)为了可以使用网络名连接Tomcat ,需要在DNS服务器上注册。

客户端通常使用主机名来标识他们希望连接的服务器;,将主机名包含在appBase=”webapps” unpackWARs=”true” autoDeploy=”true” name属性指定虚拟主机名,appBase指定我们的应用部署的位置 unpackWars 表示是否解压war包 如果unpackWars = “false”,则不进行解压,直接使用war包运行。

未完待续。。。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot如何使用自定义注解实现接口限流
下一篇:来优化 小程序中的css treeshaking(优化 改善)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~