tomcat 部署及优化

目录

一、Tomcat

1、tomca简介

2、tomcat核心组件

3、Servlet是什么

[4、什么是 JSP](#4、什么是 JSP)

5、tomcat功能组件结构

[5.1、Container 结构分析:](#5.1、Container 结构分析:)

5.2、tomcat的请求过程

二、Tomcat服务部署

supervisor简介

三、supervisor安装部署

四、tomcat启动优化

[五、Tomcat 虚拟主机配置](#五、Tomcat 虚拟主机配置)

六、Tomcat多实例部署


一、Tomcat

1、tomca简介

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

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

2、tomcat核心组件

  • Web 容器:完成 Web 服务器的功能。
  • Servlet 容器:名字为 catalina(凯特琳娜),用于处理 Servlet 代码。
  • JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码

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

3、Servlet是什么

大白话来说就是一个服务连接器 ,是用 Java 编写的服务器端程序,具有独立于平台和协议的特性, 简单的理解:servlet 就是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建

4、什么是 JSP

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

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

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

5、tomcat功能组件结构

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

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

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

  • Service:对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件,以及其他功能组件。Tomcat 可以管理多个 Service,且各 Service 之间相互独立。
  • Connector:负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界。
  • Container:负责对内处理业务逻辑。其内部由 Engine、Host、Context和Wrapper 四个容器组成,用于管理和调用 Servlet 相关逻辑。
  • Service:对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件,以及其他功能组件。Tomcat 可以管理多个 Service,且各 Service 之间相互独立。
5.1、Container 结构分析:

每个 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 封装器。

5.2、tomcat的请求过程

用户在浏览器输入网址 请求被发送到本机端口 8080,被在那里监听的 Connector 获得

然后Connector把该请求发送给它的Engine来处理 并等带它的回应

Engine根据域名传递给对应的虚拟主机Host容器

Host容器根据URL路径传递给Context容器

Context运行WEB网页程序

Wrapper根据程序代码处理业务逻辑

然后一层一层返回给Connector Connetcor返回给客户端

下面是自己画的图 简单易懂

二、Tomcat服务部署

先初始化一下虚拟机 懂得都懂 不演示了 具体翻看之前的博客

1、安装JDK

我这里有安装包 直接解压了 然后移动到 /usr/local下面 进入到里面就会看到JDK

然后配置jdk环境变量

vim /etc/profile

保存退出 然后 source /etc/profile

然后到根目录下 创建一个 XXX.java文件 我这里创建的是Hello.java文件

配置内容如图

保存退出

此时 jdk环境变量配置好了

安装tomcat

此时 到浏览器访问本地路径

出现tomcat服务 就是安装启动好了

然后有个软件可以自动拉起各种服务 叫supervisor

supervisor简介

supervisor是Python开发的c/s服务,是Linux系统下的进程管理工具。

可以监听、启动、停止、重启一个或多个进程

用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程的自动恢复的功能,不在需要自己写脚本来控制

三、supervisor安装部署

yum install -y supervisor 注意的是 需要把yum.d里面备份的镜像源移出来

安装好后 vim /etc/supervisord.conf

配置如下:

然后

tomcat.conf配置内容如下

保存退出 然后systemctl start supervisord 启动

验证:

此时 服务是能自动被拉起的 说明 supervisor 也部署成功

四、tomcat启动优化

先进入到

配置内容如下:

然后

五、Tomcat 虚拟主机配置

很多时候公司会有多个项目需要运行,一般不会是在一台服务器上运行多个 Tomcat 服务,这样会消耗太多的系统资源。此时, 就需要使用到 Tomcat 虚拟主机。

例如现在新增两个域名 www.xy101.comwww.xy102.com, 希望通过这两个域名访问到不同的项目内容。

配置内容如下:

然后

然后修改本机hosts文件

添加 域名

然后

六、Tomcat多实例部署

然后修改端口号

第二个tomcat修改端口号的内容如下

然后进入cd tomcat/bin/ 修改启动脚本

配置文件如下

然后修改停止脚本 配置一样

然后 tomcat2和上面配置一样 启动脚本 停止脚本都这样配置

然后我们启动两个 tomcat

验证一下 两个端口号

8080 能启动

8081 也能启动 所以至此 多实列也配置好了

相关推荐
陌上花开࿈16 分钟前
调用第三方接口
java
Aileen_0v023 分钟前
【玩转OCR | 腾讯云智能结构化OCR在图像增强与发票识别中的应用实践】
android·java·人工智能·云计算·ocr·腾讯云·玩转腾讯云ocr
桂月二二2 小时前
Java与容器化:如何使用Docker和Kubernetes优化Java应用的部署
java·docker·kubernetes
liuxin334455662 小时前
学籍管理系统:实现教育管理现代化
java·开发语言·前端·数据库·安全
小马爱打代码3 小时前
设计模式详解(建造者模式)
java·设计模式·建造者模式
栗子~~3 小时前
idea 8年使用整理
java·ide·intellij-idea
2301_801483693 小时前
Maven核心概念
java·maven
Q_19284999064 小时前
基于Spring Boot的电影售票系统
java·spring boot·后端
我要学编程(ಥ_ಥ)4 小时前
初始JavaEE篇 —— 网络原理---传输层协议:深入理解UDP/TCP
java·网络·tcp/ip·udp·java-ee
就爱学编程4 小时前
重生之我在异世界学编程之C语言:数据在内存中的存储篇(下)
java·服务器·c语言