关键词:
最近需要把两个项目同时部署到服务器上,于是研究了一下,页借鉴了很多别人的方法,把过程记录下来,以儆效尤。
目录:
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的几个主要端口:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="60000"
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" />
- <!-- Prevent memory leaks due to use of particular java/javax APIs-->
- <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>
- <!-- the first service-->
- <Service name="Catalina">
- <Connector port="80" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
- <!-- 注释的地方-->
- <!--
- <Connector port="8009" protocol="AJP/1.3" 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>
- <!-- the second service-->
- <Service name="Catalina">
- <!-- 修改的地方-->
- <Connector port="8081" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
- -->
- <!-- 注释的地方-->
- <!--
- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
- -->
- <Engine name="Catalina" defaultHost="localhost">
- <Realm className="org.apache.catalina.realm.LockOutRealm">
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
- resourceName="UserDatabase"/>
- </Realm>
- <!-- 修改的地方 appBase:第二个项目放置的位置-->
- <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文件:
- <Server port="8005" shutdown="SHUTDOWN">把端口改为没有是使用的端口。
- <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。然后根据相应信息查找问题原因,参考别人的意见时,也要结合自己的实际情况。最主要的是不要怕错,动手去做。你想拥有你从未拥有的东西,就要去做你从未做过的事。加油。
多个springboot项目部署在一个tomcat容器无法启动(代码片段)
...业务介绍最近用SpringBoot开发了一个翻译的小项目,但是服务器上还跑着其他项目,包括一个同样用SpringBoot开发的微信后端服务,本次业务需要在阿里云的Linux使用同一个Tomcat容器部署多个项目。部署环境:JDK8、Tomcat8、Centos7遇... 查看详情
linux学习7-一个tomcat部署多个项目(多个端口)(代码片段)
...enkins的环境,如果我们有多个项目需要部署的话,如何在一个tomcat下部署多个项目呢?前面是直接在:8080/jenkins访问的,如果有其它项目部署的话,可以新开一个端口,让新的项目访问另外一个端口就行了修改server.xmltomcat的配置... 查看详情
如何在一个tomcat中部署多个项目
通常情况下我们部署项目时是一个Tomcat中部署一个项目,但是有时也需要在一个tomcat中部署多个应用。如何实现呢?我简单的记录一下,方便日后查阅。1打开tomcat目录,修改配置文件server.xml。新增如下内容: &... 查看详情
一个tomcat下部署多个项目异常:org.springframework.jmx.export.unabletoregistermbeanexception:unabletoregister(代码片
内容简介在测试服务器上Tomcat下部署两个Springboot项目,总是一个能启动成功,另一个启动不成功。这两个war包单独部署均能正常启动。查看日志:启动时报出org.springframework.jmx.export.UnableToRegisterMBeanException:UnabletoregisterMBean的异常... 查看详情
tomcat下部署多个项目
1.加压tomcat包2.进入到tomcat 复制一个webapps文件 复制文件名为webapps13.进入conf 下 打开server.xml 进行配置: --><Serverport="8005"shutdown="SHUTDOWN"> <Listenercla 查看详情
关于tomcat配置多个host后加载缓慢
...什么影响,求大神请求一个解决方案,我的目的就是一个服务器使用一个tomcat同一个端口,部署多个项目绑定多个域名,有影响的,因为启动tomcat的时候,你的tomcat要读取webapps目录下的项目。你的项目越多,加载的就越多,就... 查看详情
linux部署多个项目(1.一个tomcat多个项目2.多个tomcat,同时启动)(代码片段)
...,多个tomcat同时启动,并且1个tomcat放1个项目假设已经有一个tomcat-A,需要再次安装tomcat-B1.拷贝tomcat-A,并重命名为tomc 查看详情
apache中同一个端口如何部署多个项目
配置两个tomcat 两个tomcat都可以是6.0版本或者其他 两个端口号不能一样 就可以同时部署多个项目参考技术A直接就能部署啊....你要改端口号的话可以去tomcatconf里面的serivce.xml里面改追问额...不是tomcat,是Apache,我想在... 查看详情
怎么在同一个tomcat部署多个应用
...可。另外其实在实际应用中,一个appserver通常确实是一个服务器就部署一个项目的 参考技术B首先需要知道的是,我们不通过Eclipse等其它工具启动Tomcat而通过手动启动Tomcat的时候是需要配置环境变量的。而我们启动Tomcat的时候,... 查看详情
一个tomcat部署多个项目引起的冲突
参考技术A项目部署在windows服务器上,(真心不造经济学院为什么要买一台windows服务器)在服务器上部署多个项目的时候,由于第二个项目自己偷懒就复制了第一个项目的web.xml,没想到连webAppRootKey也一起复制过去了,于是造成... 查看详情
tomcat下部署多个项目
转载地址:http://blog.csdn.net/philosophyatmath/article/details/30246631同一端口号的多个项目部署 添加: <Context path="/route" reloadable="true" docBase="/home/develop/tomcat 查看详情
多个项目如何部署在一个tomcat
...bapps下面,启动tomcat即可。各项目的名称不同,即可。3)一个tomcat下面最好不要放太多项目,可以分来部署,制定不同端口。参考技术A很多办法的在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加:<Contextpath="/... 查看详情
tomcat下部署多个项目
同一端口号的多个项目部署 添加: [html] viewplain copy <Context path="/route" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrass"/> &n 查看详情
tomcat部署多个项目(代码片段)
1配置说明一个tomcat进程运行两个项目,启动多个端口提供服务,即修改server.xml 增加多个service配置选项<Servicename="Catalina1"><Connectorport="9001"protocol="HTTP/1.1"connectionTimeout="20000" 查看详情
在同一台电脑上部署多个tomcat服务器
因为在写一些小的项目的时候,需要另外用到一台图片服务器,所以不得不开启多个tomcat了。在这里我用的是tomcat9.0,一个是正常时的tomcat,一个是图片服务器,在这里我就用tomcat1和tomcat2来说明。首先要配置环境变量。至于配置... 查看详情
tomcat下部署多个项目,配置文件中的ribbon超时不生效是啥原因?
tomcat下部署多个项目,配置文件中的ribbon超时不生效是什么原因?打jar包的时候调用服务ribbon超时是生效的,但是war包用tomcat启动就不生效了。tomcat下部署多个项目,配置文件中的ribbon超时不生效是什么原因?打jar包的时候调用... 查看详情
linux配置2个或多个tomcat同时运行(代码片段)
...今天操作Linux部署项目的时候,公司领导要求,只给一个服务器,但是有2个项目要部署,而且需要独立分开运行。二、解决方法Linux配置两个或多个Tomcat,一个Tomcat对应部署一个项目即可。该文章以配置2个tomcat为例,如果想启动... 查看详情
linux下svn+多个tomcat自动部署
项目中都是jsp开发,所以用到Tomcat。在我文章中也写过多个Tomcat的部署,具体可以参考:http://www.cnblogs.com/magmell/p/7045193.htmlSVN项目目录:/home/svnTomcat访问目录:/usr/local/tomcat/多个tomcat端/webapps/ROOT把SVN项目检出到Tomcat各个webapps下... 查看详情