首页 > 其他分享 >Tomcat部署及优化(企业网站架构部署与优化)

Tomcat部署及优化(企业网站架构部署与优化)

时间:2024-07-22 20:53:43浏览次数:12  
标签: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

相关文章

  • 通过 Docker 部署 Gitlab
    通过docker安装一个gitlab没啥难度。按照的官方手册一溜烟跑下来,感觉比用rpm包装都容易很多。在此作下简单的记录运行gitlab容器#构建docker数据挂载目录mkdir-p/data/gitlab运行如下脚本#!/bin/bashGITLAB_HOME=/data/gitlabsudodockerrun-d\-p443......
  • 本地部署WampServer集成环境结合内网穿透实现远程访问内网服务
    文章目录前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1注册账号3.2下载cpolar客户端3.3登录cpolarwebui管理界面3.4创建公网地址4.固定公网地址访问前言Wamp是一个Windows系统下的Apache+PHP+Mysql集成安装环境,是一组常用来搭......
  • 使用Ollama部署非官方仓库模型(Windows)
    一、从GitHub拉去llama.cpp项目gitclonehttps://github.com/ggerganov/llama.cpp下载完成后在当前目录的路径输入cmd,进入命令行二、安装python执行的相关依赖执行pipinstall-rrequirements.txt三、下载模型文件依赖安装成功后开始转换模型这里以魔塔上的C......
  • 在Windows安装、部署Tomcat的方法
      本文介绍在Windows操作系统中,下载、配置Tomcat的方法。  Tomcat是一个开源的Servlet容器,由Apache软件基金会的Jakarta项目开发和维护;其提供了执行Servlet和JavaServerPages(JSP)所需的所有功能。其中,Servlet容器的主要职责是执行JavaServlet和JSP——在这里,Servlet......
  • SQL实战宝典:快速上手数据库查询与优化
    文章目录SQL速成手册SQL的主要功能1、基本查询语句2、表操作语句3、数据操作语句4、函数与聚合操作5、子查询与联接6、高级操作7、性能优化与安全性基本查询语句表操作语句数据操作语句函数与聚合操作子查询与联接高级操作性能优化与安全性SQL速成手册SQL(Struct......
  • GZCTF比赛平台搭建——单Docker部署
    GZCTF是一个开源的网络安全竞赛平台,采用微服务架构,提供React.js前端和Django后端,支持用户通过解决实际安全问题提升技能。平台具有权限控制、加密通信和自定义赛事等功能,适用于初学者、教育机构和企业培训等场景。首先放出GZCTF官方文档,有一定基础的可以前往查看。GZCTF官方......
  • 餐饮点餐系统搭建教程,教你如何快速部署上线
    一、搭建餐饮点餐系统的必要性在当今快节奏且高度数字化的时代,开设一家餐饮店并不仅仅意味着提供美味的食物和优质的服务,还涉及到如何高效管理运营、提升顾客体验以及实现智能化转型。因此,许多餐饮业主选择自己搭建餐饮点餐系统,这一决策背后有多重深层次的原因:1. 定制化需求......
  • arm64环境部署rocketmq
    arm64环境部署rocketmq(x86架构同理)1.编译rocketmq镜像拉取代码gitclonehttps://github.com/apache/rocketmq-docker.git安装docker-compose略编译镜像进入image-build目录cdrocketmq-docker/image-build修改arm环境支持的基础镜像vimDockerfile-alpine将......
  • 性能优化之---防抖和节流
    在前端开发中,防抖(Debounce)和节流(Throttle)是两种常用的性能优化技术,主要用于控制高频率触发的事件,避免过多的计算或操作影响性能。一、防抖(Debounce)1.原理防抖的核心思想是将多次执行变为最后一次执行,即当持续触发某个事件时,只在事件停止触发后的指定时间内执行一次回调函数。......
  • 如何攻克LLM应用的调试?教你本地化部署与使用一款免费的LLM应用工程化平台
    随着LLM应用的不断成熟,特别是在B端企业场景中的逐渐落地,其不再停留在原型与验证阶段,将面临着更高的工程化要求,无论是输出的稳定性、性能、以及成本控制等,都需要实现真正的“生产就绪”;但由于大量的应用基于LangChain、LlamaIndex等框架开发,更多的抽象与封装使得应用难以跟踪......