tomcat中部署项目:saas-portal.war
前言:
在wkvm1~10中分别是10台虚拟服务器。
wkvm1:nginx
wkvm2:mysql (未用,改为192.168.0.50)
wkvm3:redis
wkvm4:z1-saas-posapi /posapi (暂未部署)
wkvm6:z0-http-service /out (暂未部署)
wkvm7:z0-job-service /job (暂未部署)
wkvm8:z2-saas-business /op (暂未部署)
wkvm5:z0-web-service /bs (已经部署 )
wkvm9:z1-saas-portal /portal (本节开始部署 )
wkvm10:zd1-erp-chain /zd1/erp (已经部署 )
本篇文章记录:在
wkvm9
中部署z1-saas-portal
项目。
一、环境配置
1、配置项目名称及路径
[root@wkvm9 webapps]# vim /usr/local/tomcat/conf/server.xml
<?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">
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500"
prestartminSpareThreads="true" />
<Connector port="8080"
connectionTimeout="20000" redirectPort="8443" acceptorThreadCount="1"
maxThreads="300" acceptCount="300" dis
maxHttpHeaderSize="8192" URIEncoding="UTF-8" compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,
text/plain,application/javascript,application/xml,application/xhtml+xml,
application/json,image/jpeg,image/gif,image/png" executor="tomcatThreadPool" />
<Engine name="Catalina" defaultHost="www.smartpos.top">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="www.smartpos.top" appBase="/webapps" autoDeploy="false" unpackWARs="true" >
<Alias>smartpos.top</Alias>
reloadable="false" privileged="false" antiResourceLocking="false" />
</Host>
</Engine>
</Service>
</Server>
修改上面中的<Host></Host>
标签中的内容。如下
<Host name="www.smartpos.top" appBase="/webapps" autoDeploy="false" unpackWARs="true" >
<Alias>smartpos.top</Alias>
<Context path="/portal" docBase="/var/www/webapps/saas-portal"
reloadable="false" privileged="false" antiResourceLocking="false" />
</Host>
含义
appBase="/webapps"
:我在linux系统中的/webapps
下放置了一个小的ping.war包,tomcat启动之后,便可以测试项目是否启动成功。
<Context path="/portal" docBase="/var/www/webapps/saas-portal">
:path="/portal"
是项目在nginx中配置的反向代理的入口,可以直接输入nginx的IP/portal
访问下面的项目,指向docBase="/var/www/webapps/saas-portal"
中,找到项目内容。docBase
指向的是项目的软连接地址,其目的是为了方便,以后发布新版本,更改版本指向路径,不用再server.xml中修改了,只更改软连接指向地址就好了。
2、配置tomcat、session的redis ip、password
[root@wkvm9 webapps]# vim /usr/local/tomcat/conf/context.xml
<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
password="ftrend"
database="0"
maxInactiveInterval="60"
sentinelMaster="master1"
sentinels="192.168.0.13:26379"
/>
</Context>
注意:
- 修改password
为ftrend
(这是我的redis密码)。
- 修改sentinels
为192.168.0.13:26379
(我的redis部署在13这台服务器上的)。
3、修改项目配置文件
从已经发布该项目的环境中获取配置文件,下载该配置文件,并进行修改。
在192.168.0.50环境中(是已经发布过该项目的环境),获取项目的源配置文件。
- 显示容器:docker ps -a
;找到指定的项目
- 进入到该项目中去:cd /tomcat/test_51/webapps/z2/
- 进入到最新版本的目录中去 :cd z2-op1-2.6.2/WEB-INF/classes/
- 下载这几个配置文件:sb -be application.yml logback.xml logback.groovy pro.properties
(logback.xml
,logback.groovy
这两个文件只有一个 )。
1)application.yml 配置数据库的(更改数据库ip、user、password)
2)logback.xml(spring-boot) logback.groovy(groovy) 日志输出配置(更改日志数据ip、user、password)
3)pro.properties 程序配置参数(更改redis ip、password) deploy.env=dev_41
在这里:日志数据库url打印到192.168.0.31:3306
;
数据库用的是url: jdbc:mysql://192.168.0.50:3306/saas-db
redis:redis.sentinel.connect=192.168.0.13:26379
二、部署项目
1、停止tomcat,并删除tomcat运行日志
systemctl stop tomcatd
:停止tocmat
systemctl status tomcatd
:查看tomcat状态
rm -rf /usr/local/tomcat/logs/catalina.*
:删除tomcat运行日志
2、创建项目解压目录
先去
192.168.0.78
运维官网查看test51
中releases
中的指定的war包最新版本
,创建解压目录,命名对应这个war包的区 ,项目名,版本号
-mkdir -p /tomcat/dev_41/webapps/z1/z1-portal1-2.14.1
:创建解压目录。(前面的/tomcat/dev_41/webapps/
固定,dev_41
根据要发布的环境名来定,后面/z1/z1-portal1-2.14.1
,根据项目所发布的区及项目的集群,版本号来定)
-/nfs/docker/wars/releases
:进入到挂载盘 获取war包
-ll | grep saas-portal-2.14.1.war
:查看war包
3、手动解压war包到指定目录
unzip -oq /nfs/docker/wars/releases/saas-portal-2.14.1.war -d /tomcat/dev_41/webapps/z1/z1-portal1-2.14.1/
4、删除解压的配置文件 (环境部署中的那三个文件)
cd /tomcat/dev_41/webapps/z1/z1-portal1-2.14.1/WEB-INF/classes
:进入到目标解压目录/WEB-INF/classes
中。ll| grep application.yml
;ll| grep logback.groovy
或者logback.xml
;ll| grep pro.properties
:查看三个文件是否存在。rm -rf application.yml
;rm -rf logback.groovy
;rm -rf pro.properties
:删除掉这三个文件。
5、拷贝自己更改的配置文件覆盖
rz -be
6、创建软连接 到新解压的目录
cd /var/www/webapps
:进入到项目软连接创建位置。ln -s /tomcat/dev_41/webapps/z1/z1-portal1-2.14.1/ /var/www/webapps/saas-portal
: 创建项目的软连接。
7、启动tomcat并查看启动日志
systemctl start tomcatd
:启动tomcat
systemctl status tomcatd
:查看tomcat状态
tail -f -n 250 /usr/local/tomcat/logs/catalina.out
:查看启动日志(线上的 catalina.out 按钮)。
8、测试项目启动是否成功
curl 'localhost:8080/ping/ping.js'
:显示ok便成功了。
注:ping/ping.js,是自己做的一个测试tomcat是否启动成功的小示例。放到的/webapps
目录下了。
三、配置数据库
最后,重启配置nginx服务,并重启即可
注:删除软连接的命令:
rm -rf ./test_chk_ln
:正确方式。
rm -rf ./test_chk_ln/
:错误方式,这样就会把原来test_chk下的内容删除。