标签:Engine 容器 Tomcat Service 部署 Connector Host Context 优化
本章结构
Tomcat三个容器
Tomcat 由一系列的组件构成,其中核心的组件有三个:
1:web容器:完成web服务器的功能。
2:Servlet容器:名字为catalina,用于处理Servlet代码。
3:JSP 容器:用于将 JSP动态网页翻译成Servlet代码。
JSP容器
JSP 全称 Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以< % 开头,以%>结束。
JSP是一种 Java servlet,主要用于实现 Java web应用程序的用户界面部分。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
Tomcat 请求处理
1:用户在浏览器中输入网址,请求被发送到本机端口8080,被在那里监听的Connector获得;
2:Connector把该请求交给它所在的Service 的 Engine (Container)来处理,并等待Engine
的回应;
3:请求在Engine、Host、Context和 Wrapper 这四个容器之间层层调用,最后在Servlet 中执行对应的业务逻辑、数据存储等。
4:执行完之后的请求响应在Context、Host、Engine 容器之间层层返回,最后返回给Connector,并通过Connector返回给客户端。
Tomcat核心组件有6个,分别为Tomcat有Server、Service、Connector、Engine、Host和Context等
1:Server
Server元素在最顶层,代表整个Tomcat容器,因此它必须是server.xml中唯一一个最外层的元素。一个Server元素中可以有一个或多个Service元素。
Server的主要任务,就是提供一个接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service。
2:Service
Service的作用,是在Connector和Engine外面包了一层,把它们组装在一起,对外提供服务。一个Service可以包含多个Connector,但是只能包含一个Engine;其中Connector的作用是从客户端接收请求,Engine的作用是处理接收进来的请求。Tomcat可以提供多个Service,不同的Service监听不同的端口。
3:Connector
Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine。通过配置Connector,可以控制请求Service的协议及端口号。
4:Engine
Engine组件在Service组件中有且只有一个;Engine是Service组件中的请求处理组件。Engine组件从一个或多个Connector中接收请求并处理,并将完成的响应返回给Connector,最终传递给客户端。
实际上,Engine、Host和Context都是容器,但它们不是平行的关系,而是父子关系:Engine包含Host,Host包含Context。
5:Host
Host是Engine的子容器。Engine组件中可以内嵌1个或多个Host组件,每个Host组件代表Engine中的一个虚拟主机。Host组件至少有一个,且其中一个的name必须与Engine组件的defaultHost属性相匹配。
Host虚拟主机的作用,是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。
6:Context
Context元素代表在特定虚拟主机上运行的一个Web应用。每个Web应用基于WAR文件,或WAR文件解压后对应的目录(这里称为应用目录)。Context是Host的子容器,每个Host中可以定义任意多的Context元素。
每个 Service 会包含一个 Container容器。在Container内部包含了4个子容器:
4个子容器的作用分别是:
1:Engine:引擎,用来管理多个虚拟主机,一个Service 最多只能有一个Engine;
2:Host:代表一个虚拟主机,也可以叫站点,通过配置 Host 就可以添加站点;
3:Context:代表一个 web应用,包含多个Servlet封装器;
4:wrapper:封装器,容器的最底层。每一wrapper 封装着一个Servlet,负责对象实例的创建、执行和销毁功能。
Engine、Host、Context和 wrapper,这四个容器之间属于父子关系。
容器由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个web应用。每个web应用会有多个Servlet封装器。
先安装基本环境;JDK
然后解压
rpm -ivh jdk-8u171-linux-x64.rpm
安装目录会默认装在/usr/java下;
然后进去全局变量文件中定义变量:
vim /etc/profile
跳至末尾;写入以下语句;
然后重载一下该文件;
source /etc/profile
然后验证:
然后安装TOMCAT
解压:
tar zxvf apache-tomcat-9.0.8.tar.gz
移动到其他位置方便关闭;
mv apache-tomcat-9.0.8 /usr/local/tomcat
然后启用它:
查询进程:
测试:
修改配置文件:
指定站点目录及创建虚拟主机;
然后创建出指定的站点目录及测试文件;
然后重启TOMCAT服务,先关闭再开启;
并关闭防火墙;
在win11客户机的hosts文件中写入两个域名对应一个ip的语句,然后测试;
优化:
进入主配置文件中将以下语句添加进去;
minSpareThreads="50"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="300"
maxThreads="500"
processorCache="500"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,tex t/plain,image/gif,image/jpg,image/png"
标签:Engine,
容器,
Tomcat,
Service,
部署,
Connector,
Host,
Context,
优化
From: https://blog.csdn.net/2401_85084312/article/details/140619534