Tomcat详解 一:tomcat的部署

news2024/10/1 21:30:34

文章目录

  • 1. Tomcat的基本介绍
    • 1.1 Tomcat是什么
    • 1.2 Tomcat的构成组件
      • 1.2.1 Web容器
      • 1.2.2 Servlet容器
      • 1.2.3 JSP容器(JAVA Scripts page)
    • 1.3 核心功能
      • 1.3.1 Container 结构分析
    • 1.4 配置文件
    • 1.5 Tomcat常用端口号
    • 1.6 启动和关闭Tomcat
  • 2. 部署Tomcat服务
    • 2.1 前置准备
    • 2.2 安装Tomcat
    • 2.3 启动Tomcat
  • 3. 将Tomcat添加至systemd服务

1. Tomcat的基本介绍

1.1 Tomcat是什么

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

官网地址: http://tomcat.apache.org/​​​​​

官网文档: https://tomcat.apache.org/tomcat-8.5-doc/index.html

帮助文档:
https://cwiki.apache.org/confluence/display/tomcat/

https://cwiki.apache.org/confluence/display/tomcat/FAQ

1.2 Tomcat的构成组件

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

  • Web 容器:完成 Web 服务器的功能。(https请求)
  • Servlet 容器:名字为 catalina,用于处理 Servlet 代码。(具体的任务)
  • JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。

1.2.1 Web容器

​ 负责底层的HTTP协议

1.2.2 Servlet容器

​ 由catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务
​ catalina实际处理的是Servlet代码,而Servlet代码是由Java编写的

1.2.3 JSP容器(JAVA Scripts page)

  • JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以 <% 开头,以 %> 结束。
  • JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。
  • JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页

1.3 核心功能

Tomcat 的核心功能有两个,分别是负责接收和反馈外部请求的连接器 Connector,和负责处理请求的容器 Container

其中连接器和容器相辅相成,一起构成了基本的 web 服务 Service。
每个 Tomcat 服务器可以管理多个 Service。

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

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

  • Service:对外提供的 Web 服务

1.3.1 Container 结构分析

每个Service会包含一个Container容器。在Container内部包含了4个子容器

  • Engine:引擎,用来管理多个虚拟主机,一个Service最多只能有一个Engine;

  • Host:代表一个虚拟主机,也可以叫站点,通过配置Host就可以添加站点;

  • Context:代表一个Web应用,包含多个Servlet封装器;

  • Wrapper:封装器,容器的最底层。每一Wrapper封装着一个Servlet,负责对象实例的创建、执行和销毁功能。

Engine、Host、Context 和 Wrapper,这四个容器之间属于层层递进的父子关系。

1.4 配置文件

安装目录下 文件介绍

ls /usr/local/tomcat/
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
目录名字功能
bin存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh 三个文件
conf存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。
lib存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的 jar 包
logs存放 Tomcat 日志
temp存放 Tomcat 运行时产生的文件
webapps存放项目资源的目录
workTomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到(升级版本时注意要删除里面的缓存)

conf子目录

文件名说明
server.xml主配置文件
web.xml每个webapp只有“部署"后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置,每个web应用也可以使用专用配置文件,来覆盖全局文件
context.xml用于定义所有web应用均需加载的Context配置,此文件为所有的webapps提供默认配置,每个web应用也可以使用自已专用的配置,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中,覆盖全局的文件
tomcat-users.xml用户认证的账号和密码文件
catalina.policy当使用security选项启动omcat时,用于为tomcat设置安全策略
catalina.propertiesTomcat环境变量的配置,用于设定类加载器路径,以及一些与JVM调优相关参数
logging.propertiesTomcat日志系统相关的配置,可以修改日志级别和日志路径等

注意配置文件对于大小写敏感

1.5 Tomcat常用端口号

8080:默认接收 http 请求的端口

8005:安全端口,可以关闭tomcat

8009:apache 和 tomcat 联动 AJP 协议

8443:负责处理https请求连接

1.6 启动和关闭Tomcat

后台启动:
tomcat/bin/startup.sh
tomcat/bin/catalina.sh start

前台启动:
tomcat/bin/catalina.sh run

关闭服务:
tomcat/bin/shutdown.sh

2. 部署Tomcat服务

2.1 前置准备

#安装jdk、设置环境变量并测试
#在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境。

#关闭防火墙
systemctl stop firewalld
setenforce 0
 
#将安装 Tomcat 所需软件包传到/opt目录下
apache-tomcat-9.0.16.tar.gz 
jdk-8u201-linux-x64.rpm
 
#切换至/opt下,安装JDK
cd /opt
rpm -ivh jdk-8u201-linux-x64.rpm

在这里插入图片描述

#设置JDK环境变量
#修改配置文件
vim /etc/profile.d/java.sh
 
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64                   #java家目录
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar #设定java编译环境目录
export PATH=$JAVA_HOME/bin:$PATH                                #设定环境变量
 
#刷新配置文件
java -version                   #查看之前的版本
source /etc/profile.d/java.sh   #执行脚本
java -version                   #查看刷新后的版本

在这里插入图片描述

2.2 安装Tomcat

 #切换至/opt下,解压tomcat包
cd /opt
tar -zxf apache-tomcat-9.0.16.tar.gz 
 
#将解压后的包拷贝至/usr/local/下并重命名
cp -r apache-tomcat-9.0.16 /usr/local/tomcat

在这里插入图片描述

2.3 启动Tomcat

 #切换至拷贝的目录下,启动tomcat
cd /usr/local/tomcat/

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

在这里插入图片描述

#看是否启动成功
ss -natp |grep 8080

在这里插入图片描述

#在浏览器测试是否可以成功登录
192.168.67.104:8080(本机IP地址)

在这里插入图片描述

 
#关闭tomcat(记得再次打开)
/usr/local/tomcat/bin/shutdown.sh

在这里插入图片描述

3. 将Tomcat添加至systemd服务

#先关闭服务
/usr/local/tomcat/bin/shutdown.sh
 
#添加用户设置属主属组
useradd -s /sbin/nologin tomcat
chown tomcat:tomcat /usr/local/tomcat/ -R

在这里插入图片描述

#新建服务文件
vim /etc/systemd/system/tomcat.service
#为Tomcat加.service文件

[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target
 
[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat
 
[Install]
WantedBy=multi-user.target

#重新加载服务,并开启,查看是否成功启动
systemctl daemon-reload
#重新加载

systemctl start tomcat
#启动服务

ss -ntap |grep 8080
#查看是否成功运行

在这里插入图片描述

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

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

相关文章

DockerCompose部署es和kibana

DockerCompose文件 version: 3.1 services:elasticsearch:image: elasticsearch:7.13.3container_name: elasticsearchprivileged: trueports:- "9200:9200"- "9300:9300"environment:- ES_JAVA_OPTS-Xms128m -Xmx1024m #设置使用jvm内存大小- cluster.na…

【unity3D】如何修改相机的默认视角

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的如何修改相机的默认视角 如何修改相机的默认视角 Game窗口运行的话视角是这样的&#xff1a; 此时Scene窗口的视角是这样的&…

申请Tik Tok的菲律宾公会需要什么条件?

近年来的跨境电商出海各个国家&#xff0c;使得跨境电子商务在全球范围内迅猛发展。菲律宾作为东南亚地区的重要经济体之一&#xff0c;其电商市场也呈现出蓬勃的增长势头。本文将介绍菲律宾国内外电商的发展趋势&#xff0c;并分析目前菲律宾的市场团队佳薇cmxyci 神秘代码开启…

论文解读 | 点对照:3D点云理解无监督式预训练

原创 | 文 BFT机器人 《PointContrast: Unsupervised Pre-training for 3D Point Cloud Understanding》是一篇关于三维点云数据理解领域的研究论文&#xff0c;旨在提出一种无监督预训练方法&#xff0c;以改善对三维点云数据的理解。 01 背景 三维点云数据是从传感器&#…

手写Spring:第4章-基于Cglib实现含构造函数的类实例化策略

文章目录 一、目标&#xff1a;含构造函数的类实例化二、设计&#xff1a;含构造函数的类实例化三、实现&#xff1a;含构造函数的类实例化3.1 工程结构3.2 含构造函数的类实例化类图3.3 类实例化策略3.3.1 定义实例化策略接口3.3.2 JDK实例化3.3.3 Cglib实例化 3.4 抽象类定义…

INS惯性导航系统相关技术(概念版)

一、参考资料 组合导航系统生产商 applanix 官网 新手入门系列3——Allan方差分析方法的直观理解 惯性测量单元Allan方差分析详解 IMU标定之—Allan方差 b站视频&#xff1a;武汉大学惯性导航课程合集【2021年秋】 资料下载&#xff1a;PPT&#xff1a;《惯性导航原理与方法》…

nginx-ingress多控制器部署

nginx-ingress直接使用yaml来部署 wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml修改里面的镜像 多控制器部署实现&#xff1a; 在同一个命名空间中只需要新增一个IngressClass跟 ingress-…

EFG-02-10-31、ERBG-06-B-51电液比例控制调速阀放大器

EFCG-02-10-31、EFG-03-60-26、EFCG-03-125-26、EFCG-03-125-51、EFG-06-250-22、EFCG-06-250-22、EFG-06-250-51、EFCG-02-30-31、ERBG-06-B-51、ERBG-10-C-51、ERBG-06-H-51、ERBG-10-B-51、ERBG-06-C-51、ERBG-10-H-51、EFG-02-10-31、EFCG-03-60-26、EFG-03-125-26、EFG-03…

Mysql存储过程与存储函数

文章目录 1. 简介2. 存储过程的特点3. 存储过程操作语法4. 存储过程变量5. 其它语法6. 存储函数 1. 简介 存储过程是事先经过编译并存储在数据库中的一段SQL集合&#xff0c;调用存储过程可以简化应用开发人员的很多工作&#xff0c;减少数据在数据库和应用服务器之间的传输&a…

生成式AI的JavScript技术栈

如果不使用新的软件基础设施技术&#xff0c;就很难理解它们。 至少&#xff0c;a16z 基础设施团队发现了这一点&#xff0c;而且因为我们中的许多人都是以程序员的身份开始职业生涯的&#xff0c;所以我们经常通过实践来学习。 尤其是生成式AI浪潮的情况尤其如此&#xff0c;它…

使用Blender 在影片剪辑上创建粘滞标签

推荐&#xff1a;使用 NSDT场景编辑器快速搭建3D应用场景 准备场景 步骤 1 在新文件中&#xff0c;右键单击默认立方体和灯光&#xff0c;然后按键盘上的 Del 将其删除。按住 Shift 键&#xff0c;然后右键单击以选择多个对象。 删除默认对象 步骤 2 选择摄像机并按 Alt-R …

问道管理:申购额度如何计算?

在投资领域&#xff0c;很多人会选择申购基金产品。对于大众投资者而言&#xff0c;申购额度是一个较为要害的问题。在此&#xff0c;我们将从多个角度进行剖析&#xff0c;具体解读申购额度怎么核算。 一、基金公司规则 首要&#xff0c;申购额度需要依照基金公司的规则来进行…

js 高精度计算 - decimal.js 库

what decimal.js &#xff1f; decimal.js是一个用于进行精确数值计算的第三方库。通常情况下&#xff0c;当你需要进行对精度要求较高的数值计算时&#xff0c;可以考虑使用decimal.js或类似的库。 JavaScript中的原生Number类型使用双精度浮点数表示&#xff0c;对于某些计算…

torch.cuda.is_available() 解决方案

本人使用的显卡如下&#xff0c;打开任务管理器查看 Anaconda下载哪个版本都可以 使用命令conda create -n pytorch python3.6创建一个名为pytorch的环境&#xff0c;解释器使用3.6的 使用命令conda activate pytorch进入该环境 进入pytorch官网&#xff0c;选择下列选项 …

SPSS教程:手把手教你绘制簇状条形图

SPSS教程&#xff1a;手把手教你绘制簇状条形图 1、问题与数据 某研究者拟分析受教育程度和性别对幸福指数的影响程度&#xff0c;招募了58位研究对象&#xff0c;包括28位男性和30位女性。每一类性别中&#xff0c;研究对象的受教育程度均分为3类&#xff08;高中及以下、大…

Spring原生api操作之如何在spring配置文件添加Bean对象到Spring容器

一、创建一个spring项目 为了使用Spring的原生api&#xff0c;首先要创建一个只基于Spring的项目. 创建maven项目引入spring依赖&#xff08;不要使用6版本以上的&#xff0c;6的最低兼容jdk为jdk17&#xff09;创建spring配置文件 这个配置文件的名称固定&#xff0c;但是必须…

935. 骑士拨号器

935. 骑士拨号器 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 935. 骑士拨号器 https://leetcode.cn/problems/knight-dialer/description/ 完成情况&#xff1a; 解题思路&#xff1a; 题目要求&#xff1a;键…

网络技术二十:OSPF

OSPF RIP的缺陷 最大跳数限制了网络规模 以跳数为度量值无法准确判断最优路径 路由更新发送完整路由表消耗网络带宽 收敛速度慢 协议会产生路由自环 定义 开放式最短路径优先&#xff0c;基于链路状态特征 工作在IP层&#xff0c;协议号89 OSPF初始化流程 1.建立邻居和邻…

实现无公网IP的公网环境下Windows远程桌面Ubuntu 18.04连接,高效远程办公!

文章目录 一、 同个局域网内远程桌面Ubuntu1. 更新软件仓库2. 安装支持包3. 安装XFCE4桌面环境4. 安装XRDP5. 环境设置5.1 XFCE桌面配置5.2 在配置文件中&#xff0c;加入XFCE会话 6 重启服务7. 查看IP地址8. 使用Windows远程桌面连接 二、公网环境系统远程桌面Ubuntu1. 注册cp…

解锁前端Vue3宝藏级资料 第一章 带你深入了解Vue3项目创建 1 (Vue CLI 创建vue项目)

Vue.js是一款广受欢迎的JavaScript框架&#xff0c;专为创建网站、web应用程序和管理系统等前端用户界面(UI)设计。其流行不仅因为它拥有庞大的开发者社区和丰富的学习资源&#xff0c;还因为它具有低学习成本和易于上手的特点。当你在使用中遇到疑问或困难时&#xff0c;可以轻…