tomcat 部署及优化

目录

一、Tomcat 

1、tomca简介

2、tomcat核心组件

 3、Servlet是什么

4、什么是 JSP

 5、tomcat功能组件结构

5.1、Container 结构分析:

5.2、tomcat的请求过程

二、Tomcat服务部署 

supervisor简介

三、supervisor安装部署

四、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.com 和 www.xy102.com, 希望通过这两个域名访问到不同的项目内容。

配置内容如下:

然后

然后修改本机hosts文件 

添加 域名 

然后

六、Tomcat多实例部署

然后修改端口号

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

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

配置文件如下

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

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

然后我们启动两个 tomcat

验证一下 两个端口号

8080 能启动

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

相关推荐

  1. Tomcat部署优化

    2024-06-08 18:18:04       33 阅读
  2. Tomcat部署优化

    2024-06-08 18:18:04       11 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-08 18:18:04       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-08 18:18:04       5 阅读
  3. 在Django里面运行非项目文件

    2024-06-08 18:18:04       4 阅读
  4. Python语言-面向对象

    2024-06-08 18:18:04       6 阅读

热门阅读

  1. kubesphere报错

    2024-06-08 18:18:04       17 阅读
  2. 物联网的应用——工业自动化

    2024-06-08 18:18:04       16 阅读
  3. 前端判断数据类型的方法有哪些?

    2024-06-08 18:18:04       14 阅读
  4. html+css示例

    2024-06-08 18:18:04       15 阅读
  5. spring入门aop和ioc

    2024-06-08 18:18:04       11 阅读
  6. Golang:go-redis支持Redis Server和Redis Cluster的客户端

    2024-06-08 18:18:04       15 阅读
  7. H3C网络设备配置命令

    2024-06-08 18:18:04       13 阅读
  8. 【游戏】赚钱模拟器2.2版小改进

    2024-06-08 18:18:04       14 阅读
  9. 详解MySQL的MVCC机制与间隙锁

    2024-06-08 18:18:04       12 阅读