Tomcat优化及部署

news2024/9/24 21:22:50

目录

一、Tomcat概述

二、Tomcat核心组件

1.Web容器

2.servlet容器

3.JSP容器

三、Tomcat的功能组件

1.connector

2.container

3.service

四、Tomcat部署

1.关闭防火墙和安全机制

2.将安装 Tomcat 所需软件包传到/opt目录下

3.安装JDK

 4.设置JDK环境变量

5.编写java脚本

6.安装启动Tomcat

 7.启动tomcat 

 8.使用浏览器访问验证

 9.优化tomcat启动速度

五、Tomcat 虚拟主机配置

1.创建 kgc 和 benet 项目目录和文件

2.修改 Tomcat 主配置文件

3.客户端浏览器访问验证


一、Tomcat概述

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

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

二、Tomcat核心组件

1.Web容器

完成Web服务器的功能

2.servlet容器

名字为Catalina,用于处理Servlet代码

3.JSP容器

将JSP动态网页翻译成servlet

三、Tomcat的功能组件

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

1.connector

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

2.container

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

3.service

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

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

四、Tomcat部署

1.关闭防火墙和安全机制

2.将安装 Tomcat 所需软件包传到/opt目录下

3.安装JDK

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

 

 4.设置JDK环境变量

vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_371-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
 

 

 source /etc/profile.d/java.sh

java -version

5.编写java脚本

vim abc.java

public class abc {
  public static void main(String[] args){
    System.out.println("Hello world!");
  }
}

javac abc.java

java abc 

6.安装启动Tomcat

 cd /opt
tar zxvf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat

 7.启动tomcat 

/usr/local/tomcat/bin/startup.sh 
netstat -natp | grep 8080

 

 8.使用浏览器访问验证

 http://192.168.146.100:8080

 9.优化tomcat启动速度

vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security

117行修改securerandom.source=file:/dev/urandom

 

/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh 

ll /usr/local/tomcat/

五、Tomcat 虚拟主机配置

1.创建 kgc 和 benet 项目目录和文件

mkdir /usr/local/tomcat/webapps/kgc
mkdir /usr/local/tomcat/webapps/benet
echo "This is kgc page\!" > /usr/local/tomcat/webapps/kgc/index.jsp
echo "This is benet page\!" > /usr/local/tomcat/webapps/benet/index.jsp

2.修改 Tomcat 主配置文件

vim /usr/local/tomcat/conf/server.xml

--165行前--插入
<Host name="www.kgc.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/webapps/kgc" path="" reloadable="true" />
</Host>

<Host name="www.benet.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/webapps/benet" path="" reloadable="true" />
</Host>

 

 /usr/local/tomcat/bin/shutdown.sh

/usr/local/tomcat/bin/startup.sh

3.客户端浏览器访问验证

www.kgc.com:8080

 www.benet.com:8080

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/710300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

链路性能测试中参数多样性方法分享

目录 业务无关量 随机数字 线程安全随机 随机字符串 业务相关量 随机相关量 上游接口获取 上游接口造数据 提前造数据 总结&#xff1a; 下面分享几种我工作中常用到的增加参数多样性的方法。 业务无关量 这个是最常用到的&#xff0c;当部分的接口参数对接下来的用…

机器人开发--EKF扩展卡尔曼滤波介绍

机器人开发--EKF卡尔曼滤波介绍 1 介绍1.1 概述KF (Kalman Filter)EKF (Extended Kalman Filter)UKF (Unscented Kalman Filter) 1.2 发展历史1.3 卡尔曼演化分支1.4 应用1.5 特点1.6 姿态估计问题 from 南叔先生1.7 EKF、PF、UKF 对比1.8 EKF 递归框架 2 理解機器人學&#xf…

使用Matplotlib画三维图

使用matplotlib画3D图&#xff1a; import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D# 创建X和Y的网格点 x np.linspace(-5, 5, 100) y np.linspace(-5, 5, 100) X, Y np.meshgrid(x, y)# 创建Z的网格点&#xff08;这里使用一…

nginx 配置m3u8播放视频

第一步nginx配置&#xff1a; 参考 csdn - CircleMouse Nginx配置搭建m3u8格式的视频播放服务 user www www; worker_processes auto; error_log /www/wwwlogs/nginx_error.log crit; pid /www/server/nginx/logs/nginx.pid; worker_rlimit_nofile 51200;stream {l…

提高情商的训练方法

在当今社会&#xff0c;情商已经成为了一个越来越受到重视的概念。情商指的是一个人在情感方面的智力水平&#xff0c;即情绪智商&#xff0c;包括了自我意识、自我管理、社交意识和关系管理等多个方面。而提高情商并非是天生的天赋&#xff0c;而是可以通过学习和实践获得的技…

自然语言处理从入门到应用——预训练模型总览:词嵌入的两大范式

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 相关文章&#xff1a; 预训练模型总览&#xff1a;从宏观视角了解预训练模型 预训练模型总览&#xff1a;词嵌入的两大范式 预训练模型总览&#xff1a;两大任务类型 预训练模型总览&#xff1a;预训练模型的拓展 …

【论文解读系列】MLLM研究综述

A Survey on Multimodal Large Language Models 1 中国科大科技学院、认知智能国家重点实验室 2 腾讯优图实验室 MLLM目录 0. 摘要1. 引言2. 总览3. 方法3.1 多模态指令调谐3.1.1 引言3.1.2 前言(Preliminaries)3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2 多模态…

深入理解 Golang: 网络编程

Go 中的 Epoll 关于计算机网络分层与 TCP 通信过程过程此处不再赘述。 考虑到 TCP 通信过程中各种复杂操作&#xff0c;包括三次握手&#xff0c;四次挥手等&#xff0c;多数操作系统都提供了 Socket 作为 TCP 网络连接的抽象。Linux -> Internet domain socket -> SOC…

layui中文、以及图标乱码解决方案

最终解决方案…手动对js文件中的中文&#xff0c;用unicode进行编码

修改 ChatGLM2-6B 自我认知的 Lora 微调教程

修改 ChatGLM2-6B 自我认知的 Lora 微调教程 0. 背景1. 部署微调项目2. 数据集说明3. 模型监督微调(Lora)4. 模型效果测试5. 导出微调模型6. 调用导出的模型 0. 背景 现在开始学习微调&#xff0c;主要学习 Lora 微调。 这次尝试了修改 ChatGLM2-6B 自我认知&#xff0c;文章…

2023.7.2-【for语言】:输入一个整数,并输入该整数对应个数的整数,求他们的和与平均值

程序&#xff1a; int a;int b0;int c;int sum0;double ave;printf("请输入待求整数的个数&#xff1a;");scanf("%d",&a);for (b 1; b<a; b){printf("整数%d&#xff1a;", b);scanf("%d", &c);sum c;}printf("以上…

vite中的env环境变量

一、vite中使用env环境变量基本介绍 Vite 是一种现代化的前端构建工具&#xff0c;旨在提供快速的开发和构建体验。在 Vite 中&#xff0c;env 环境变量是一种用于在项目中设置和访问全局变量的机制。通过 env 变量&#xff0c;可以在不同环境下配置不同的参数&#xff0c;实现…

时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解 部分源码 %---------------------

Java基础---为什么不能用浮点数表示金额

目录 缘由 十进制转二进制 不是所有数都能用二进制表示 IEEE 754 避免精度丢失 缘由 因为不是所有的小数都能用二进制表示&#xff0c;所以&#xff0c;为了解决这个问题&#xff0c;IEEE提出了一种使用近似值表示小数的方式&#xff0c;并且引入了精度的概念这就是我们所…

Docker部署.Net7.0

1、新建项目 勾选启用Docker,会自动生成Dockerfile文件 2、生成镜像 打开PowerShell 进入项目解决方案目录路径 把项目打包成镜像 //镜像名称net7. 注意镜像名称后面的空格和点符号必须有docker build -t net7.0 .打包完成后可以看到项目的镜像 3、创建容器并启动 //…

C++文件操作 - 写操作----简单示例

C文件操作 - 写操作 一、什么是文件 内存中存放的数据在计算机关机后就会消失。要长久保存数据&#xff0c;就要使用硬盘、光盘、U盘等设备。为了便于数据的管理和检索&#xff0c;引入了“文件”的概念。 一篇文章、一段视频、一个可执行程序&#xff0c;都可以被保存为一个文…

BeanShell:多线程环境下Interpreter解释器的优化使用

BeanShell是用 Java 编写的一个小型、免费、可嵌入的 Java 代码的脚本解释器。 BeanShell动态执行标准Java语法&#xff0c;并使用通用语法对其进行扩展 脚本编写便利性&#xff0c;适用于 Java 的轻量级脚本。本文说明在并发环境下对BeanShell更加优化的使用方式。 简单示例 …

geoserver加载arcgis server瓦片地图显示异常问题处理

1.全能地图下载的瓦片conf.xml格式有问题首先要修改格式&#xff0c;conf.cdi文件也需要修改格式&#xff0c;修改为UTF-8或者UTF-8无BOM编码(不同的notepadd显示不同) 2. 下载的conf.xml坐标系默认从最小级别开始&#xff0c;一定要把前几级也补全&#xff0c;从0级开始 <L…

diffusion model

(正课)Diffusion Model 原理剖析 (1_4) (optional)_哔哩哔哩_bilibili(正课)Diffusion Model 原理剖析 (1_4) (optional)是【授权】李宏毅2023春机器学习课程的第42集视频&#xff0c;该合集共计64集&#xff0c;视频收藏或关注UP主&#xff0c;及时了解更多相关视频内容。http…

高中学习3大主流国际课程-申请国外大学本科

目录 作用 3大主流国际课程是什么 A-Level AP课程 IB 3大主流国际课程对比 作用 帮助学生申请国外大学本科。 如果能够选择到适合的国际课程&#xff0c;未来的留学规划就相当于成功了一半 3大主流国际课程是什么 A-Level、AP、IB三大国际课程 A-Level A-Level课程&a…