📝个人主页:五敷有你
🔥系列专栏:Spring
⛺️稳中求进,晒太阳
单体项目部署
本地工作
项目在本地开发完毕之后进行一些必要参数的修改。
比如:
- 数据库的JDBC的配置文件,还有前端页面的localhost,
- 需要注明的是,后端的localhost在服务器的运行时,是会被解析成主机IP地址的,但前端的页面不会所以要将前端页面的地址也进行修改,还有后端的图片要上传的服务器的地址也需要修改一下。
Maven的单体Web项目的部署比较简单。
clear掉targer后打成war包
拿到war包的地址。
服务器工作
rz 命令上传文件
切换到Tomcat的webapps目录,之后rz 上传文件
上传到Tomcat之后,因为我这个时候Tomcat是启动状态,所以会自动解析war包,然后生成运行文件夹。(如果没有就关闭Tomcat重启)
之后如果正常的访问的话就部署成功了。
这么简单?NO no no...
但是有一个问题,就是你原来如果图省事,将访问的路径设置为 / 那么,就有点麻烦了。
你要知道 在本地环境中设置了应用程序的上下文路径为 /
,这意味着你可以直接通过服务器的根路径来访问应用程序。但是当你将 WAR 文件上传到云服务器时,情况可能有所不同。
主要是 前端的资源路径,原来在本地的情况是你可以通过根路径直接访问,但由于传到服务器就多了一层pet路径,但是默认前端的静态资源路径是写死的
页面之所以能访问到是因为这个是请求后端进行视图跳转的。
前端的所有直接请求都差了一层/pet的资源都直接拿不到
解决方法:
将Pet改成 ROOT ,tomcat下ROOT目录会被默认访问,这样就不会再有拿不到资源的情况了。
聚合项目的部署
直接复制两个tomcat
理解简单,参数修该复制,在我努力找原因的情况下,最终还是失败了,一个启动另外一个就是停止运行,莫名其妙极了。可能有资源的竞争
在一个webapp里直接上传
前提是你本地也是一个端口,然后不同的模块用的路径名称不同
在一个tomcat里面配置多个webapp
这个还是通过实测是可以的。
服务器不好观察,就在window本地看一下,一模一样。
先复制webapps的目录文件
cp -fr webapps webapps1
再复制Catalina命名为Catalina
cp -fr Catalina Catalina1
之后进入conf/sever.xml,进行修改 复制一份service(注意看,不是sever),然后粘贴到下面
修改这几个地方
- <Service name="Catalina1">
- <Connector port="80" protocol="HTTP/1.1"
- <Engine name="Catalina1" defaultHost="localhost">
- <Host name="localhost" appBase="webapps1"
把项目放入webapps 们里面吧,结束。