Linux JAVA环境的搭建tomcat的部署(含多实例)

tomcat

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

tomcat的组成

tomcat用于支持Java Servlet和JSP。它是一个重要的Web应用程序服务器,具有模块化的架构,以下是Tomcat的主要组成部分:

  1. Catalina Servlet容器: Tomcat的核心组件之一是Catalina,它是一个Servlet容器,负责处理HTTP请求和响应。Catalina实现了Servlet规范,并提供了一个运行环境,让开发者能够部署和运行Java Web应用程序。

  2. Coyote Connector: Tomcat使用Coyote Connector来处理网络通信。它支持HTTP、HTTPS和AJP(Apache JServ Protocol)等协议,允许Tomcat与客户端(通常是浏览器)和其他Web服务器进行通信。这个组件是Tomcat的入口点,它接受来自客户端的请求,并将它们传递给Catalina进行处理。

  3. Jasper JSP引擎: Jasper是Tomcat的JSP引擎,用于编译和执行JSP页面。当浏览器请求JSP页面时,Tomcat会使用Jasper将JSP代码转换为Servlet,并最终返回HTML给客户端。这使得动态Web页面的开发变得更加简单和高效。

  4. Web应用程序目录结构: Tomcat的Web应用程序是以目录结构的形式组织的,通常位于Tomcat安装目录下的webapps文件夹中。每个Web应用程序都有自己的目录,包括WEB-INF文件夹,其中包含了web.xml配置文件、类文件和其他资源。这种结构使得Web应用程序的部署和管理变得非常方便。

  5. Valve和Realm: Tomcat允许开发者通过Valve和Realm来扩展其功能。Valve是一个拦截器,用于在请求和响应之间执行自定义处理,例如身份验证、日志记录等。Realm用于定义用户和角色的验证和授权策略,可以与不同的身份验证机制集成。

  6. Manager应用程序: Tomcat提供了一个名为Manager的Web应用程序,用于管理和监控正在运行的Web应用程序。通过Manager应用程序,管理员可以部署、停止、重新启动和查看Web应用程序的状态。

  7. 日志记录: Tomcat还具备强大的日志记录功能,可以记录请求、错误、访问日志等信息,有助于开发者和管理员追踪和调试问题。

综上,Apache Tomcat是一个由多个组件组成的Web应用程序服务器,其中最重要的构成部分是Web 容器Servlet 容器JSP 引擎

TOMCAT的安装

1、配置JAVA环境
查看JAVA版本

java -version

下图可知我JAVA版本是1.8.0_131
更换JAVA版本在这里插入图片描述
下载JAVA你想安装的rpm安装包如jdk-8u201-linux-x64.rpm

rpm -i  jdk-8u201-linux-x64.rpm

在这里插入图片描述
查看JAVA路径

rpm -qpc jdk-8u201-linux-x64.rpm

在这里插入图片描述
路径是/usr/java/jdk1.8.0_201-amd64/

vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

刷新配置

source /etc/profile.d/java.sh

查看版本

java -version

在这里插入图片描述
升级版本成功

部署TomCat

下载TomCat安装包可以去官网下载,
我在这里下载了
apache-tomcat-9.0.16.tar.gz
解归档
在这里插入图片描述

tar xvf apache-tomcat-9.0.16.tar.gz

启动TOMCAT

进入 /apache-tomcat-9.0.16/bin
文件夹

在这里插入图片描述
运行启动脚本

./startup.sh

在这里插入图片描述
查看是否启动成功

 ss -natp |grep 8080

在这里插入图片描述

可以看见8080端口以开启,tomcat在运行
访问TOMCAT网站
在这里插入图片描述
tomcat已经启动

配置TOMCAT管理文件

vim /usr/lib/systemd/system/tomcat.service

以我的安装路径为例子,配置

[Unit]
Description=Tomcat Server
Wants=network-online.target
After=network.target[Service]
Type=forking
Environment="JAVA_HOME=/usr/java/jdk1.8.0_201-amd64"
Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
Environment="CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
ExecStart=/root/apache-tomcat-9.0.16/bin/startup.sh
ExecStop=/root/apache-tomcat-9.0.16/bin/shutdown.sh
Restart=on-failure[Install]
WantedBy=multi-user.target

刷新配置文件

systemctl daemon-reload

这样就可以使用systemctl命令来管理tomcat程序了

tomcat的多实例部署

1、使用

cp  -a  /root/apache-tomcat-9.0.16  /root/tomcat1
cp  -a  /root/apache-tomcat-9.0.16  /root/tomcat2

复制N个tomcat N=你需要部署的实例数量

2、配置 tomcat 环境变量

vim /etc/profile.d/tomcat.sh

以我的为例
#tomcat1

#tomcat1
export CATALINA_HOME1=/root/tomcat1
export CATALINA_BASE1=/root/tomcat1
export TOMCAT_HOME1=/root/tomcat1
#tomcat2
export CATALINA_HOME2=/root/tomcat2
export CATALINA_BASE2=/root/tomcat2
export TOMCAT_HOME2=/root/tomcat2
~
source /etc/profile.d/tomcat.sh

修改 tomcat1 和tomcat2的端口号
例如tomcat1
修改/root/tomcat1/conf/server.xml文件

 vim /root/tomcat1/conf/server.xml

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
修改startup.sh
修改shutdown.sh

# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
##添加以下内容
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1

在这里插入图片描述
使用启动脚本启动tomcat
在这里插入图片描述
启动成功
在这里插入图片描述
在这里插入图片描述
tomcat 8080端口和8081端口是两个不同的程序,设置成功。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flutter开发实战-自定义长按TextField输入框剪切、复制、选择全部菜单AdaptiveTextSelectionToolba样式UI效果

flutter开发实战-自定义长按TextField输入框剪切、复制、选择全部菜单样式UI效果 在开发过程中,需要长按TextField输入框cut、copy设置为中文“复制、粘贴”,我首先查看了TextField中的源码,看到了ToolbarOptions、AdaptiveTextSelectionToo…

AI与医疗保健:革命性技术如何拯救生命

文章目录 引言AI的应用领域1. 影像识别2. 疾病诊断3. 药物研发4. 个性化治疗 AI技术1. 机器学习2. 深度学习3. 自然语言处理4. 基因组学 实际案例1. Google Health的深度学习模型2. IBM Watson for Oncology3. PathAI的病理学分析 道德和隐私考虑结论 🎉欢迎来到AIG…

实验4 交换机端口隔离(access模式)

交换机端口隔离(access模式) 实验目的实验拓扑实验步骤(1)在未划分vlan前,配置pc1、pc2的地址,如图所示(2)测试两台pc机的连通性(3)创建vlan,并验…

按键点亮led灯

原理图: K0这个按键按下时,开发板D1这个灯亮,松开,灯灭 代码如下: #include "stm32f4xx.h" void LED_Init(void) {//1.定义一个GPIO外设的结构体变量 GPIO_InitTypeDef GPIO_InitStructure;//RCC_AHB1PeriphClockCmd(RCC_AHB1Pe…

Linux底层基础知识

一.汇编,C语言,C,JAVA之间的关系 汇编,C语言,C可以通过不同的编译器,编译成机器码。而java只能由Java虚拟机识别。Java虚拟机可以看成一个操作系统,Java虚拟机是由汇编,C&#xff0c…

分享一下微信商城如何添加新客有礼活动

一、新客有礼活动的优势 新客有礼活动是一种非常有效的营销策略,通过向新用户提供优惠和礼品,可以吸引更多的用户关注和购买。以下是一些新客有礼活动的优势: 吸引新用户:新客有礼活动可以吸引更多的新用户关注和购买&#xff0c…

12306 抢票小助手: 完整易用的抢票解决方案 | 开源日报 0917

testerSunshine/12306 Stars: 31.4k License: MIT 12306 购票小助手是一个使用 Python 编写的项目,主要功能包括自动打码、自动登录、准点预售和捡漏、智能候补以及邮件通知等。该项目具有以下核心优势: 支持多个版本的 Python提供验证码本地识别功能可…

docker四种网络模式

文章目录 一.为什么要了解docker网络二.docker 网络理论三.docker的四类网络模式3.1 bridge模式3.2 host模式3.3 container模式3.4 none模式 四.bridge模式下容器的通信4.1 防火墙开启状态4.2 防火墙关闭状态 一.为什么要了解docker网络 当你开始大规模使用Docker时&#xff0…

Springboot部署服务器项目上线

第一步,项目打包,有两种方式 第一种、直接在项目根目录打开终端,输入以下语句即可。如下图: mvn clean package -DskipTests 第二种、在右侧点击 Maven选项,选择鼠标左键双击package选项即可。如下图: 两…

CocosCreator3.8研究笔记(十七)CocosCreator UI组件(一)

CocosCreator 中,用户界面 User-interface(UI)组件和2d渲染对象的区别在于2D 渲染对象一般只负责将2D 对象渲染出来,而 UI 则更多的承担着用户交互的能力。 常用的 UI 控件可通过添加节点的方式来创建。 在 层级管理器 中点击左上…

算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)

注:由于字数的限制,我打算把算法宝典做成一个系列,一篇文章就20题!!! 目录 一、链表的算法题(目前10道) 1. 移除链表元素(力扣;思路:前后指针&…

宋浩概率论笔记(六)样本与统计量

参数估计的入门章节,为后面的参数估计与假设检验铺垫基础,难点在于背诵公式,此外对于统计量的理解一定要清晰——本质是多个随机变量复合而成的函数~

ARM接口编程—Interrupt(exynos 4412平台)

CPU与硬件的交互方式 轮询 CPU执行程序时不断地询问硬件是否需要其服务,若需要则给予其服务,若不需要一段时间后再次询问,周而复始中断 CPU执行程序时若硬件需要其服务,对应的硬件给CPU发送中断信号,CPU接收到中断信号…

MySQL常用函数集锦 --- 字符串|数值|日期|流程函数总结

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 目录 一、字符…

在c#中使用CancellationToken取消任务

目录 🚀介绍: 🐤简单举例 🚀IsCancellationRequested 🚀ThrowIfCancellationRequested 🐤在控制器中使用 🚀通过异步方法的参数使用cancellationToken 🚀api结合ThrowIfCancel…

js创建动态key的对象ES6和ES5的方法

前提: 有个场景,循环数组,根据每一项的值,往一个数组中push一个新对象,对象的key不同要从数组中获取 情况解析:push没有什么问题,问题就是创建一个动态key的对象。下面就说一下如何以参数为key…

第二证券股票分析:什么是赛道股和题材股?

赛道股和题材股是两种经常被出资者关注的股票类型。赛道股是指代表着产业趋势和未来增加方向的上市公司股票,例如新能源汽车、5G通信等。题材股则是针对商场上的某些抢手事情或话题而产生的股票炒作。那么赛道股和题材股有哪些不同之处?在进行这类出资时…

Claude 使用指南 | 可与GPT-4媲美的语言模型

本文全程干货,让你轻松使用上claude,这也是目前体验cluade的唯一途径!废话不多说,直接上教程,cluade的能力不逊于GPT4,号称是ChatGPT4.0最强竞品。相对Chatgpt来说,Claude不仅是完全免费的&…

贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据...

原文链接:http://tecdat.cn/?p22702 贝叶斯回归分位数在最近的文献中受到广泛关注,本文实现了贝叶斯系数估计和回归分位数(RQ)中的变量选择,带有lasso和自适应lasso惩罚的贝叶斯(点击文末“阅读原文”获取…

服务器迁移:无缝过渡指南

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…