linux部署tomcat项目404_一个tomcat下部署多个项目或一个服务器部署多个tomcat

点击上方[全栈开发者社区]右上角[...][设为星标⭐]

e4577fa8ede05410ef575a19de668bd2.gif

♪ 点击上方绿标 收听一个tomcat下部署多个项目或一个服务器部署多个tomcat

最近需要把两个项目同时部署到服务器上,于是研究了一下,页借鉴了很多别人的方法,把过程记录下来,以儆效尤。

目录:

1,一个tomcat下同时部署两个项目(多个项目可以参考)

1.1项目都放在webapps内(共用一个端口)

1)把两个项目都放在webapps下。

2)处理重复jar包。

3)tomcat端口默认为8080.如果想修改可以去conf下的server.xml中进行修改

4)启动tomcat

1.2建立多个类似于webapps的文件夹,通过conf下的server.xml进行配置(每个项目使用不同端口)

1)在tomcat的webapps同一层目录下新建webapps1文件夹,webapps放入第一个项目,webapps2放入第二个项目。

2)同1.1第二步:处理重复jar包。

3)修改server.xml文件,设置端口等信息。

4)启动tomcat.

2,一台服务器上同时运行2个tomcat.(多个应该类似)

2.1.使用压缩版的tomcat不能使用安装版的。  

2.2.第一个tomcat的配置不变。  

2.3.增加环境变量CATALINA_HOME2,值为新的tomcat的地址;增加环境变量CATALINA_BASE2,值为新的tomcat的地址。  

2.4.修改新的tomcat中的startup.bat、shutdown.bat,把其中的CATALINA_HOME改为CATALINA_HOME2。  

2.5.修改新的tomcat中的catalina.bat,把其中的CATALINA_HOME改为CATALINA_HOME2,CATALINA_BASE改为CATALINA_BASE2。  

2.6.修改conf/server.xml文件: 

2.7成功! 

1,一个tomcat下同时部署两个项目(多个项目可以参考)

1.1项目都放在webapps内(共用一个端口)

1)把两个项目都放在webapps下。

2)处理重复jar包。

两个项目如果有重复的jar包,一定要进行处理,否则会导致服务器内存耗尽,报类似于http-bio-8080"-exec-1等异常。

解决方案:建立共享包路径。

参考文章:https://my.oschina.net/angerbaby/blog/271438

我采用第一种:

修改catalina.properties中的common.loader属性。在common.loader属性原值基础上追加

“${catalina.home}/lib/shared/*.jar”,然后启动tomcat。很显然,

需要将共享的jar包放到一个shared目录里,然后将shared目录放到tomcat下lib目录里。建立好共享文件夹之后,把相同的包都放在共享文件夹,每个项目WEB-INF下的lib放各自独有的。

3)tomcat端口默认为8080.如果想修改可以去conf下的server.xml中进行修改

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

4)启动tomcat   

1.2建立多个类似于webapps的文件夹,通过conf下的server.xml进行配置(每个项目使用不同端口)

1)在tomcat的webapps同一层目录下新建webapps1文件夹,webapps放入第一个项目,webapps2放入第二个项目。

2)同1.1第二步:处理重复jar包。

3)修改server.xml文件,设置端口等信息。

a,首先了解下tomcat的几个主要端口:

"8080" protocol=redirectPort="8443" disableUploadTimeout="false"executor="tomcatThreadPool" URIEncoding="UTF-8"/>

其中8080为HTTP端口,8443为HTTPS端口。

<Server port="8005" shutdown="SHUTDOWN">   

8005为远程停服务端口

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 

8009为AJP端口,APACHE能过AJP协议访问TOMCAT的8009端口。

b,修改server.xml.
主要操作为在server下在增加一个service,这个文件中修改的地方主要是Connector里的端口,也就是咱们方法的http端口,注释掉8009AJP端口,修改host下的appBase为对应的webapps,过程如下。

<?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN">  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />    <GlobalNamingResources>       <Resource name="UserDatabase" auth="Container"              type="org.apache.catalina.UserDatabase"              description="User database that can be updated and saved"              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"              pathname="conf/tomcat-users.xml" />  GlobalNamingResources>      <Service name="Catalina">        <Connector port="80" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />       <Engine name="Catalina" defaultHost="localhost">           <Realm className="org.apache.catalina.realm.LockOutRealm">               <Realm className="org.apache.catalina.realm.UserDatabaseRealm"               resourceName="UserDatabase"/>      Realm>       <Host name="localhost"  appBase="webapps"            unpackWARs="true" autoDeploy="true">                 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"               prefix="localhost_access_log" suffix=".txt"               pattern="%h %l %u %t "%r" %s %b" />       Host>    Engine>    Service>            <Service name="Catalina">      <Connector port="8081" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />          -->                   <Engine name="Catalina" defaultHost="localhost">            <Realm className="org.apache.catalina.realm.LockOutRealm">               <Realm className="org.apache.catalina.realm.UserDatabaseRealm"               resourceName="UserDatabase"/>      Realm>          <Host name="localhost"  appBase="webapps1"            unpackWARs="true" autoDeploy="true">                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"               prefix="localhost_access_log" suffix=".txt"               pattern="%h %l %u %t "%r" %s %b" />       Host>    Engine>  Service>Server>

可以看到,第一个service中只需要注释掉8009那部分。如果不注释会发生端口被占用的情况,其他不用改变,第二个service为第一个service的副本,

在其中修改80端口为8081.host的appBase修改为自己对应的位置。

如果想部署多个项目,再次增加service节点即可。

4),启动tomcat

2,一台服务器上同时运行2个tomcat.(多个应该类似)

如果现在一台机器上已经部署了一个tomcat服务,无论这个tomcat是否已经注册为服务了,或者没有注册windows服务,或者注册了,都没关系。都可以采用下面的方法实现。如果该tomcat已经注册为windows服务了,从window的环境变量中找不到 CATALINA_HOME和CATALINA_BASE,也可以采用下面的方式实现。 

当第一个tomcat启动后,后面tomcat的server.xml中的端口不管怎么改,仍然会报端口冲突。后来在dos下运行才发现所有的tomcat都会去找

CATALINA_HOME和CATALINA_BASE这两个环境变量,因此步骤如下:  

2.1.使用压缩版的tomcat不能使用安装版的。  

2.2.第一个tomcat的配置不变。  

2.3.增加环境变量CATALINA_HOME2,值为新的tomcat的地址;增加环境变量CATALINA_BASE2,值为新的tomcat的地址。  

2.4.修改新的tomcat中的startup.bat、shutdown.bat,把其中的CATALINA_HOME改为CATALINA_HOME2。  

2.5.修改新的tomcat中的catalina.bat,把其中的CATALINA_HOME改为CATALINA_HOME2,CATALINA_BASE改为CATALINA_BASE2。  

2.6.修改conf/server.xml文件:  

把端口改为没有是使用的端口。  

  <Connector port="8080" maxHttpHeaderSize="8192"    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"    enableLookups="false" redirectPort="8443" acceptCount="100"    connectionTimeout="20000" disableUploadTimeout="true" /> 

把端口改为没有是使用的端口。  

<Connector port="8009"    enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> 

把端口改为没有是使用的端口。  

2.7成功! 

总结:在遇到问题时,首先应分析问题产生的原因,然后整理解决的思路,思路很重要,如何分析呢,看日志,重要的事情说三遍,看日志,看日志,see logs。然后根据相应信息查找问题原因,参考别人的意见时,也要结合自己的实际情况。最主要的是不要怕错,动手去做。你想拥有你从未拥有的东西,就要去做你从未做过的事。加油。

原文参考:https://blog.csdn.net/kangguowei/article/details/53037563

留言打卡第18天。

觉得本文对你有帮助?请分享给更多人

关注「全栈开发者社区」加星标,提升全栈技能

本公众号会不定期给大家发福利,包括送书、学习资源等,敬请期待吧!

如果感觉推送内容不错,不妨右下角点个在看转发朋友圈或收藏,感谢支持。

好文章,我在看❤️

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

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

相关文章

科学计数法_第一章 科学计数法与近似数

生活中&#xff0c;我们常常遇到一些较大的数&#xff0c;如10000000、3450000000等.利用科学计数法表示某些较大的数可以免去一些不必要的麻烦&#xff0c;尤其是遇到一些乘法运算时&#xff0c;如20000000245000000.科学记数法表示数时&#xff0c;不改变数的符号&#xff0c…

python调用浏览器打开网页_python调用浏览器,实现刷网页浏览小程序!

Python 和放大镜的二进制代码私信小编007即可自动获取大量Python视频教程以及各类PDF&#xff01;python 打开浏览器&#xff0c;可以做简单的刷网页的小程序 and 其他有想象力的程序。不过仅供学习&#xff0c;勿用非法用途。python的webbrowser模块支持对浏览器进行一些操作主…

# 傅立叶变换 画曲线_让你永远忘不了的傅立叶变换解析

使用联想链条和几何直观&#xff0c;辅以从实际需求衍生概念的思考模式&#xff0c;详解什么是傅立叶变换&#xff0c;为什么要做傅立叶变换等&#xff0c;帮助记忆和理解&#xff0c;目的当然是标题所说&#xff1a;让你永远忘不了傅立叶变换这个公式。另&#xff0c;这篇博客…

bat批处理执行python_通过批处理来运行python程序

》准备》》在所用的python源程序最前面指定该源程序要用那种可执行程序去运行它》》例如&#xff1a;#!/bin/sh shell脚本#!/usr/bin/perl perl脚本#!/usr/bin/python python脚本#!/usr/bin/python3 python3脚本#!/usr/bin/python2 python2脚本》》我的程序使用的解释器》》》#…

messagehub讲解_艾舜杰SAP Data Hub 数据服务总线技术深度讲解

原标题&#xff1a;艾舜杰SAP Data Hub 数据服务总线技术深度讲解艾舜杰SAP Data Hub 是一个多方面的数据编排解决方案, 旨在解决在不断增长的分布式数据环境中的挑战。它的关键功能包括&#xff1a;数据管道、治理和架构管理。解决方案可弹性扩展, 可编排并自动化处理不同数据…

select报错 spark_spark-sql master on yarn 模式运行 select count(*) 报错日志

启动hive --service metastore启动 dfs yarn[rootbigdatastorm bin]# ./spark-sql --master yarn --deploy-mode client --driver-memory 512m --executor-memory 512m --total-executor-cores 1spark-sql>select count(*) ;LogSLF4J: Class path contains multiple SLF4J …

python字符串填充_填充函数(Python)字符串.zfi

我想更改下面的Python函数&#xff0c;以涵盖我的business_代码需要填充的所有情况。string.zfillPython函数处理此异常&#xff0c;将填充到左侧直到达到给定的宽度&#xff0c;但我以前从未使用过它。在#function for formating business codesdef formatBusinessCodes(code)…

找不到天隆虚拟机_玩转虚拟机,教你如何装系统

最近小白系统收到很多小伙伴的私信想要知道虚拟机如何安装系统&#xff0c;那么今天小白系统整理了下虚拟机安装系统的教程&#xff0c;下面一起看下吧。虚拟机安装系统适合什么人群呢&#xff1f;1、如果你新买的电脑不支持安装Win7系统&#xff0c;那么装个虚拟机吧&#xff…

ios 主题切换 思路_IOS主题切换ThemeManager

#import "ThemeManager.h"#define kDefaultThemeName "默认主题"#define kThemeName "kThemeName"implementation ThemeManagerstatic ThemeManager *instance nil;(ThemeManager *)shareInstance{static dispatch_once_t onceToken…

从数据类型 nvarchar 转换为 numeric 时出错_JS入门篇(三):javascript的数据类型详解...

JavaScript的数据类型分为两大类&#xff0c;基本数据类型和复杂数据类型。基本数据类型&#xff1a;Undefined、Null、Boolean、Number、String。复杂数据类型&#xff1a;Object。(1)Undefined类型Undefined 类型只有一个值&#xff0c;即特殊的 undefined。在使用 var 声明变…

下载keep运动软件_Keep运动软件官网下载_Keep运动最新官网下载_18183软件下载

Keep运动官网下载怎么样&#xff1f;不妨来18183下载试试&#xff01;1.8亿运动爱好者都在Keep体验健身、跑步、骑行、计步功能&#xff0c;ta就是移动健身教练和饮食指导老师。Keep帮助人们随时随地练就完美身材&#xff0c;开启健康生活&#xff0c;就从Keep开始。18183软件下…

python 小程序搜索排名优化_python3 搜索关键字小程序

#!/usr/bin/python3#luckimport sysfilename input(‘请输入您要搜索的路径及文档名称:‘)if len(filename) 0:sys.exit(‘不能为空!‘)while True:mubiao input(‘请输入您要搜索的关键词:‘)if mubiao ‘exit‘:sys.exit(‘欢迎使用搜索系统!‘)if len(mubiao) 0:contin…

idea添加scala环境_idea怎么在线安装scala并且启动'

一&#xff0e;环境配置&#xff1a;1.1 安装JDK&#xff0c;配置环境变量。1.2下载Scala,并配置环境变量1.3安装playframe2框架&#xff1a;下载play并配置环境变量或者点击browse all versions选择更多版本&#xff0c;我安装的是play2.2.4。查看运行是否安装成功&#xff0c…

linux下anjuta_[分享] Linux下用Anjuta写个Hello World 的C++程序竟如此简单!

在IRC中常见人问起&#xff0c;学C/C&#xff0c;在Linux下用什么工具好。有推荐vi/vim和emacs的&#xff0c;个人认为&#xff0c;那太难为像我们这样的初学者了。印象中&#xff0c;KDE中的KDeveloper非常的不错&#xff0c;简直就跟VC是一样的强大和方便。几年没用过了&…

为啥我的页面模板的from提交不了数据_4-9【微信小程序全栈开发课程】意见反馈(四)--提交反馈信息

1、创建后端操作文件先在后端server/controllers文件夹中创建操作文件createopinion.js&#xff0c;用来将从前端页面提交的数据&#xff0c;插入到opinions表中&#xff0c;创建完之后&#xff0c;页面目录如下2、添加路由在路由管理文件server/routes/index.js文件中添加路由…

wan口有流量但电脑上不了网_wan口有ip地址但是上不了网怎么办?

问&#xff1a;wan口有ip地址但是上不了网怎么办&#xff1f;路由器设置后&#xff0c;在WAN口状态选项下查看到&#xff0c;WAN口有IP地址&#xff0c;但是上不了网。请问这是什么原因引起的&#xff0c;应该解决&#xff1f;答&#xff1a;如果路由器设置后&#xff0c;WAN口…

python数据科学入门_干货!小白入门Python数据科学全教程

前言本文讲解了从零开始学习Python数据科学的全过程&#xff0c;涵盖各种工具和方法你将会学习到如何使用python做基本的数据分析你还可以了解机器学习算法的原理和使用说明先说一段题外话。我是一名数据工程师&#xff0c;在用SAS做分析超过5年后&#xff0c;决定走出舒适区&a…

rac一节点时间比另一个节点快_数据库数据那么多为什么可以检索这么快?

你好&#xff0c;是我琉忆。经常跟数据打交道的你&#xff0c;有没有去考虑过数据上百万&#xff0c;为什么它可以检索那么快&#xff1f;一说到数据库的检索速度这么快&#xff0c;我想你一定想到了索引。没错&#xff0c;今天我们来简单聊聊索引&#xff0c;聊聊索引是什么&a…

唯有自己变得强大_真正的自立,唯是让自己变得更加强大

更大的成功&#xff0c;不是看我们用双腿走了多少路&#xff0c;而是要看我们总共行了多少路。一只萤火虫&#xff0c;靠自身的力量发出了光芒。夜晚&#xff0c;它仰头望天&#xff0c;对着月亮说&#xff1a;“我是靠自己而发光的&#xff0c;而你却是借助太阳的光芒。虽然你…

字母绝对值python怎么表示_【怎样求用字母表示的数的绝对值?】作业帮

用绝对值的代数定义求一个数的绝对值&#xff0c;必须先判断这个数是正数、零&#xff0c;还是负数&#xff0c;再由定义确定去掉绝对值符号“| |”后的结果是它本身&#xff0c;还是它的相反数及零&#xff0c;从而求得这个数的绝对值&#xff0e;当这个数是用字母表示的数时…