Tomcat 部署优化+多实例部署

本文详细介绍了Tomcat的核心组件,包括Servlet和JSP,并讲解了Tomcat的服务部署步骤,如环境准备、JDK安装、启动优化等。接着,文章探讨了Tomcat虚拟主机配置,通过创建不同项目目录并修改server.xml文件实现域名绑定。此外,还重点讨论了Tomcat的优化,包括配置文件参数调整和多实例部署,强调了不同实例端口号的设置和环境变量配置。最后,通过浏览器访问测试验证了配置的正确性。
摘要由CSDN通过智能技术生成

目录

一、Tomcat概述

1.1 Tomcat 简介

总结: 

1.2  Tomcat的核心组件

1.2.1  Servlet

1.2.2  JSP

1.3 Tomcat功能组件结构

1.3.1  Connector

1.3.2  Container

1.3.3  Service

1.4 Container的子容器

1.5 Tomcat顶层架构

1.6 Tomcat处理请求过程

二、Tomcat 服务部署

2.1  环境准备,将安装包传到opt目录下

2.2 安装JDK

2.4  测试JDK环境

 2.5   安装启动Tomcat

2.6 优化tomcat启动速度

2.7 将Tomcat添加到服务

 2.8 Tomcat主要目录说明​编辑 

 三、Tomcat虚拟主机配置

3.1  创建 abc 和 123 项目目录和文件

3.2  修改 Tomcat 主配置文件server.

3.3  重启服务

​编辑 

3.4 客户端浏览器访问验证

四、Tomcat优化

4.1  Tomcat 配置文件参数优化

4.2  编辑配置文件

4.3 重启服务  

 4.4  测试 

 五、Tomcat多实例部署

5.1  安装 jdk

5.2  安装tomcat 

5.3  配置tomcat环境变量

5.4 修改tomcat2中的server.xml文件,要求各tomcat实例配置不能有重复的端口号

5.5 修改各tomcat实例中的startup.sh和shutdown.sh文件,添加tomcat环境变量

5.6  启动各 tomcat 中的 /bin/startup.sh 

5.7  浏览器访问测试 

六、总结


一、Tomcat概述

1.1 Tomcat 简介


         Tomcat是JAVA语言开发的,Tomcat服务器是一个免费的开放源代码的Web应用服务器,是Apache软件基金会的Jakarat项目中的一个核心项目,由Apache,sun和其他一些公司及个人共同开发而成。

Tomcat属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。一般来说,Tomcat虽然和Apache或者Nginx这些Web服务器一样,具有处理HTML页面的功能,然而由于处理静态HTML的能力远不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。

扩展:Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织

官网地址:Apache Tomcat® - Welcome!
 

总结: 

免费的、开放源代码的Web应用服务器

Apache软件基金会( Apache Software Foundation)Jakarta项目中的一个核心项目

由 Apache、Sun和一些公司及个人共同开发而成

深受Java爱好者的喜爱,并得到部分软件开发商的认可

是目前比较流行的Web应用服务器

1.2  Tomcat的核心组件

Tomcat是极其轻量级别的,核心组件都是支持基本运行的组件 

Tomcat 由一系列的组件构成,其中核心的组件有三个:

  •  Web 容器:完成 Web 服务器的功能。

  •  Servlet 容器:名字为 catalina,用于处理 Servlet 代码。

  • JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码

因此 Tomcat 是 Web 应用服务器,也是一个 Servlet/JSP 容器。Tomcat 作为 Servlet 容器,负责处理客户请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户。 

1.2.1  Servlet

Java Servlet 是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP 客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使用servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他来源的记录,还可以动态创建网页。与CGI(公共网关接口)功能想类似。

Servlet 是Java Servlet 的简称,可以理解为是一个服务连接器,是用 Java 编写的服务器端程序,具有独立于平台和协议的特性;

 简单的理解:servlet 就是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建。

1.2.2  JSP

JSP 全称 Java Server Pages,是一种动态网页开发技术。它使用 JSP 标签在HTML网页中插入 Java 代码。标签通常以 <% 开头,以 %> 结束。

JSP 是一种 Java servlet,主要用于实现 Java web 应用程序的用户界面部分。

JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

1.3 Tomcat功能组件结构

Tomcat 的核心功能有两个,分别是负责接收和反馈外部请求的连接器 Connector,和负责处理请求的容器 Container。 其中连接器和容器相辅相成,一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。

1.3.1  Connector

负责对外接收和响应请求,它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界。

1.3.2  Container

负责对内处理业务逻辑。其内部由 Engine、Host、Context和Wrapper 四个容器组成,用于管理和调用 Servlet 相关逻辑。

1.3.3  Service

对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件,以及其他功能组件。Tomcat 可以管理多个 Service,且各 Service 之间相互独立。

1.4 Container的子容器

Container用于封装和管理Servlet, 以及具体处理Request请求, 在Connector内部包含了4个子容器。

Engine:引擎,用来管理多个站点,一个service最多只能有一个Engine
Host:代表一个站点,也可以叫虚拟主机,通过配置Host就可以添加站点
Context:代表一个应用程序,对应着平时开发的一套程序,或着一个WEB-INE目录以及下面的web.xml文件
wrapper:每一wrapper封装着一个servlet
注意:Engine、Host、Context 和 Wrapper,这四个容器之间属于父子关系。
容器 由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个 Web 应用。每个 Web 应用会有多个 Servlet 封装器。

1.5 Tomcat顶层架构

1.Tomcat中最顶层的容器是Server,代表整个服务器,一个Server可以包含至少一个Service,用于具体提供服务。

2.Service主要包含两个部分:Connector和Container。Tomcat的心脏就是这两个组件,这两个组件的作用:
Connector用于处理连接相关事情,并提供Socket与Request和Response相关的转化;
Contai用于封装管理Servlet,以及集体处理Request请求。

3.一个Tomcat中只有一个Server,一个Server可以包含多个Service,一个Service只有一个Container,但是可以有多个Connectors,因为一个服务可以有多个连接,如同时提供Htpp和Https链接,也可以提供相同协议不同端口的连接。

4.多个Connector 和一个Container 就形成了一个Service, 有了Service就可以对外提供服务了,但是Service还要一个生存的环境,必须要有人能够给她生命、掌握其生死大权,那就非Server莫属了!所以整个Tomcat的生命周期由Server控制。另外上述的包含 关系或者说是父子关系,都可以在tomcat的conf目录下的server.xml配置文件中看出。

5.server.xml中定义<Server port="8005” shutdown=" SHUTDOWN">
这会让Tomcat6启动一个server实例( 即一个JVM) ,它监听在8005端口以接收“SHUTDOWN"命令,如果接收到了就会关闭Tomcat。各Server的定义不能使用同一一个端口,这意味着如果在同一个物理机上启动了多个Server实例,必须配置它们使用不同的端口。
 

1.6 Tomcat处理请求过程

1.用户在浏览器中输入网址通过80端口请求nginx,nginx通过反向代理将请求发送到本机端口 8080,被在那里监听的 Connector(Coyote前端页面和HTTP/1.1协议) 获得。Connector 把该请求交给它所在的 Service 的 Engine(Container)来处理,并等待 Engine 的回应。(这一步为Web容器作用)
2.Engine响应请求并分发给不同的虚拟主机也就是站点(Host),站点确认后调用Context确定相应的url路径并找到index.jsp文件,将其中的JAVA代码翻译成servlet代码,之后被wrapper封装给servlet容器(这一步为JSP容器的作用)。最后在servlet容器中,通过catalina脚本执行代码,并将执行结果封装成HttpServletResponse对象返回给Context(servlet容器的作用)。
3.执行完之后的请求响应在 Context、Host、Engine 容器之间层层返回,最后返回给Connector,并通过 Connector 返回给客户端。

详解

假设来自客户的请求为: http://localhost:8080/wsota/wsota_index.jsp 
1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得 
2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应 
3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host 
4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机) 
5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context 
6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理) 
7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet 
8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类 
9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法 
10)Context把执行完了之后的HttpServletResponse对象返回给Host 
11)Host把HttpServletResponse对象返回给Engine 
12)Engine把HttpServletResponse对象返回给Connector 
13)Connector把HttpServletResponse对象返回给客户browser

二、Tomcat 服务部署

  在部署Tomcat之前必须安装好 JDK,因为 JDK 是 Tomcat 运行的必要环境。

2.1  环境准备,将安装包传到opt目录下

jdk-8u201-linux-x64.rpm
apache-tomcat-9.0.16.tar.gz
 
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.2 安装JDK

cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm 
rpm -ivh jdk-8u201-linux-x64.rpm 
java -version

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值