瑞吉外卖项目实战Day9-前后端分离,项目部署
准备:
服务器A:192.168.205.128
- Nginx:部署前端项目,配置反向代理
- Mysql:主从复制结构中的主库
服务器B:192.168.205.128
jdk:运行Java项目
git:版本控制工具
maven:项目构建工具
jar:Spring Boot项目打成Jjar包基于内置Tomcat运行
Mysql:主从复制结构中的从库
Redis:缓存
部署前端项目
上传文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmMdvsMT-1660269783812)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220811175646932.png)]
配置Ngnix配置文件:
配置反向代理
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html/dist;
index index.html;
}
#反向代理配置
location ^~ /api/ {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://192.168.67.1:8080;
}
启动nginx
访问ngin首页就能看见自己部署的前端页面了
后端项目部署
在服务器B中部署
将代码克隆下来
使用reggieStart.sh脚本上传到服务器B,通过chmod命令设置执行权限
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=reggie_take_out
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 /usr/local/reggie_take_out
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar reggie_take_out-1.0-SNAPSHOT.jar &> reggie_take_out.log &
echo 项目启动完成
图片加载失败:
将图片路径修改后提交到git远程仓库
并将图片资源添加到指定目录中