Linux(CentOS7)下如何配置多个Tomcat容器?

一、在 liunx 系统安装 jdk

1、安装jdk(yum install 安装)

查看是否系统是否自带jdk并卸载

rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj

其中,GCJ是GNU的Java编译器,可以把java程序编译成本地代码,编译成功后的可执行文件不再需要jre就可直接运行,编译成本地后的程序运行速度有所提高,缺点是生成后的文件较大。

如果存在自带的jdk相关套件,就需要通过下列命令卸载。

rpm -qa | grep java | xargs rpm -e --nodeps 

2、查看可用openjdk版本

yum search java | grep -i --color jdk

执行命令结果是:

3、安装openjdk1.8.0版本

yum install java-1.8.0-openjdk*

执行上述命令后(该命令执行需要几分钟时间),出现下面内容说明安装完成。

4、查看安装版本

java -version

执行查看命令,结果如下:

5、jdk环境变量配置

使用vim /etc/profile 编辑profile文件,在文件里面追加以下内容,其中JAVA_HOME的值根据实际安装路径为准:

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

修改上述配置后,执行下来命令,让修改配置生效:

source /etc/profile

二、安装Tomcat

1、下载tar.gz版本Tomcat

在oracle官网下载即可,地址:https://tomcat.apache.org/download-80.cgi。

 2、解压

# 解压后目录:/root/src/apache-tomcat-8.5.93
tar -zxvf apache-tomcat-8.5.93

3、修改配置文件

使用vim /etc/profile,在文件里面追加以下内容:

CATALINA_HOME=/root/src/apache-tomcat-8.5.93
export CATALINA_HOME

保存文件后,执行下面命令,刷新配置。

source /etc/profile

4、启动tomcat

#进入tomcat8/bin目录
cd /root/src/apache-tomcat-8.5.93/bin
#执行:./startup.sh
./startup.sh

三、对外开放访问的端口 

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

查看已经开放的端口号

firewall-cmd --list-all

在 windows 系统中通过浏览器访问 tomcat 服务器

四、配置多个Tomcat容器:

1、在原来的基础上复制出多个tomcat:

cp -rf apache-tomcat-8.5.93 apache-tomcat-8.5.93-2
cp -rf apache-tomcat-8.5.93 apache-tomcat-8.5.93-3

2、修改环境配置,添加TOMCAT_HOME等环境变量:

vim /etc/profile
# tomcat
export TOMCAT_HOME=/root/src/apache-tomcat-8.5.93
export CATALINA_HOME=$TOMCAT_HOME
export CATLINA_BASE=$TOMCAT_HOME# tomcat2
export TOMCAT_HOME_2=/root/src/apache-tomcat-8.5.93-2
export CATALINA_HOME_2=$TOMCAT_HOME_2
export CATLINA_BASE_2=$TOMCAT_HOME_2# tomcat3
export TOMCAT_HOME_2=/root/src/apache-tomcat-8.5.93-3
export CATALINA_HOME_2=$TOMCAT_HOME_3
export CATLINA_BASE_2=$TOMCAT_HOME_3
source /etc/profile

3、针对每个tomcat,修改其启动时所要读取的TOMCAT_HOME等环境变量:

vi /root/src/apache-tomcat-8.5.93-2/bin/catalina.sh

增加如下配置信息: 

export TOMCAT_HOME=$TOMCAT_HOME_2
export CATALINA_HOME=$TOMCAT_HOME_2
export CATLINA_BASE=$TOMCAT_HOME_2

4、对另外的tomcat,修改其三个端口,避免端口冲突导致启动失败:

vi /root/src/apache-tomcat-8.5.93-2/conf/server.xml

 


 

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

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

相关文章

浅谈多人游戏原理和简单实现。

😜作 者:是江迪呀✒️本文关键词:websocket、网络、原理、多人游戏☀️每日 一言:这世上有两种东西无法直视,一是太阳,二是人心! 一、我的游戏史 我最开始接触游戏要从一盘300游戏…

动态规划(选择)

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 作为队伍的核心,forever97很受另外两个队友的尊敬。 Trote_w每天都要请forever97吃外卖,但很不幸的是宇宙中心forever97所在的学校周围只有3家forever97爱吃的外卖。 如果T…

C语言学习之统计英文字符串中26个字母大小写出现的次数

实例要求:编写C语言代码,统计出英文字符串中26个字母大写和小写出现的次数;输入输出如下所示: 输入:"aabbAAABBCCCCZZ" 输出:a ------- 2A ------- 3b ------- 2B ------- 2c ------- 0C ------- 4...Z ---…

项目-电商

kafka优化 java使用KafkaAdminClient进行增,删,查操作kafka_包子1012的博客-CSDN博客 避免非必要的rebalancecomsumer没有及时发送心跳导致consumer被踢出consumergroupheartbeat.interval.ms 2ssession.timeout.ms 6s

Java中的消息队列有哪些?

在Java中,有几种常见的消息队列实现,包括: Apache Kafka:一个分布式流处理平台,具有高吞吐量、可持久化、可扩展等特点。 RabbitMQ:一个开源的消息代理,实现了AMQP(高级消息队列协议…

nginx反向代理 负载均衡

目录 1.反向代理介绍: 2.七层代理和四层代理: 2.1 七层代理: 2.2 四层代理: 3.反向代理web服务器: 3.1 代理服务器配置: 3.2 服务器配置 : 3.3 客户端访问: 3.4 代理不同端口&am…

VMware虚拟机的安装以及安装CentOS系统

VMware虚拟机是一款非常受欢迎的虚拟化软件,它可以模拟一台计算机运行在另一台计算机上,从而实现在一台物理机器上运行多个虚拟机的目的。在本文中,我们将会介绍如何安装VMware虚拟机并在其中安装CentOS操作系统。 文章目录 📀VMw…

微机原理 || 8253接口芯片知识点+4道经典例题+手写解题过程

(二)经典考题: 【例1】: 设8253端口地址为300H~303H,要求计数器2工作在方式5,二进制计数,CLK22MHz,OUT21KHz。试按上述要求完成8253的初始化。 【例2】:选择计数器0工…

说说FLINK细粒度滑动窗口如何处理

分析&回答 Flink的窗口机制是其底层核心之一,也是高效流处理的关键。Flink窗口分配的基类是WindowAssigner抽象类,下面的类图示出了Flink能够提供的所有窗口类型。 Flink窗口分为滚动(tumbling)、滑动(sliding&am…

【LeetCode算法系列题解】第21~25题

CONTENTS LeetCode 21. 合并两个有序链表(简单)LeetCode 22. 括号生成(中等)LeetCode 23. 合并K个升序链表(困难)LeetCode 24. 两两交换链表中的节点(中等)LeetCode 25. K 个一组翻转…

【SpringBoot】用SpringBoot代码详细解释<List>的用法

在Spring Boot应用程序中,我们可以使用Java集合框架中的List接口来存储并操作一组数据。 List是Java集合框架中的一种数据结构,用于存储一组有序的元素。使用List可以方便地向其中添加、删除或者修改元素,也可以通过下标或者迭代器遍历其中的…

YOLO数据集划分(训练集、验证集、测试集)

1.将训练集、验证集、测试集按照7:2:1随机划分 1.项目准备 1.在项目下新建一个py文件,名字就叫做splitDataset1.py 2.将自己需要划分的原数据集就放在项目文件夹下面 以我的为例,我的原数据集名字叫做hatDataXml 里面的JPEGImages装的是图片 Annota…

【提示工程】询问GPT返回Json结构数据

theme: orange 众所周知,我们可以通过构建的Prompt获取期望的内容,但是通常都是以自然语言返回的,假如我们想得到结构化的数据,比如Json,XML那么怎么办,这篇文章给你一个思路。 理所当然的想法 要实现询问大…

python类的属性和实例的属性有什么区别

在 Python 中,类属性和实例属性是两种不同类型的属性,它们在用途和作用域上有所不同。下面是关于它们的区别的详细解释: 定义位置: 类属性:定义在类的主体中,但在任何类方法之外。实例属性:通常…

【深度学习】ChatGPT

本文基于Andrej Karpathy(OpenAI 联合创始人,曾担任特斯拉的人工智能和自动驾驶视觉主管)在Microsoft Build 2023上的演讲整理而成(完整的视频在文末,直接拖到文章底部),主要分为2大部分: 1.如何训练GPT(可…

亚马逊的邮箱可以更改吗,修改亚马逊账户邮箱的方法

亚马逊的邮箱可以更改吗? 可以更改,但更改主户邮箱需要电话对身份进行深度验证。如果需要修改,可以先开case向客服说明情况,然后根据客服的指导步骤来操作即可。 修改亚马逊账户邮箱的方法 1、登录您的账户:打开亚马…

如何有效防止服务器被攻击?

随着互联网的快速发展,服务器安全问题日益引起人们的关注。近期,全球范围内频繁发生的服务器攻击事件引发了广泛关注。为了保护企业和个人的数据安全,有效防止服务器被攻击已成为迫在眉睫的任务。 首先,及时更新服务器的操作系统和…

《C和指针》笔记20:布尔值的注意事项

比较布尔值的时候下面的代码看起来是一样的。 #define FALSE 0 #define TRUE 1 if(flag FALSE) if(!f1ag) ... if(flag TRUE) if(flag) ...但是,如果flag设置为任意的整型值,那么第2对语句就不是等价的。只有当flag确实是TRUE或FALSE,或者…

C++|观察者模式

观察者模式: 定义对象间的一种一对多(变化)的依赖关系,以便当一个 对象(Subject)的状态发生改变时,所有依赖于它的对象都 得到通知并自动更新 动机: 在软件构建过程中,我们需要为某些对象建立…

数学之美 — 1

为什么你会想和他人共享那些美丽的事物呢?因为这会让他(她)感到愉悦,也能让你在分享的过程中重新欣赏一次事物的美。 ——David Blackwell 1、感官之美,对于那些有规律的事物,你可以利用自己的视觉、触觉、…