部署架构
![](https://img-blog.csdnimg.cn/img_convert/9b4d62020377b7444653be65e624124d.png)
用户通过访问前端资源(nginx),其中涉及到的后端资源在nginx中通过反向代理访问!
前端资源部署
事先在服务器下载Nginx,MySQL,将前端打包文件上传至nginx目录下的html文件内
![](https://img-blog.csdnimg.cn/img_convert/4d633a9bda50d1e7f1702bfa1343969d.png)
修改配置文件
![](https://img-blog.csdnimg.cn/img_convert/3f8e1e02badb416e142d748223ccca5e.png)
重新加载配置文件并启动nginx服务
![](https://img-blog.csdnimg.cn/img_convert/d1ef5aa8737277872c599b8210abfecc.png)
![](https://img-blog.csdnimg.cn/img_convert/7b0a5641ca3f23d153bddf0e5d97f49b.png)
此时前端就部署好啦!!!
后端资源部署
事先在服务器下载jdk,MySQL,tomcat,git,并使用git clone将代码克隆下来
![](https://img-blog.csdnimg.cn/img_convert/89ea293cf213093a7cd2be8f3bb1ea29.png)
编写shell脚本,完成杀死进程,拉取代码,打包,启动服务的功能,shell脚本如下:
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=reggie
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /javaProject/reggie
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
LOG_NAME=reggieLog.log
nohup java -jar Reggie-0.0.1-SNAPSHOT.jar &> $LOG_NAME &
echo 项目启动完成
启动shell脚本
![](https://img-blog.csdnimg.cn/img_convert/b800a76b967853ab63b6e2d47c06aa29.png)
此时后端咱们就部署好了!!!!
访问192.168.1.131(nginx部署的服务器)
![](https://img-blog.csdnimg.cn/img_convert/8e5b8b14a07a2685fda9759622c000ae.png)
页面正常访问,我们试试能不能登录进去,如果可以则说明前后的分离部署成功!!!
![](https://img-blog.csdnimg.cn/img_convert/1ffdc0e30c371229f72f1e24acafa432.png)