瑞吉外卖前后端分离进行项目部署

如何前后端分离进行项目部署

由于我们的服务器数量有限,就使用这三台服务器,具体的软件规划如下:

服务器软件名称
192.168.138.100Nginx(部署前端项目、配置反向代理),MySQL(主从复制的主库)服务器A
192.168.138.101JDK1.8、Git、Maven、jar(项目jar包基于内嵌Tomcat运行)、MySQL(主从复制的从库)服务器B
172.17.2.94Redis(缓存中间件)服务器C

对Redis、JDK、Git、Maven进行简单的安装及配置,这里我们就不再演示软件的安装了。

前端部署
1.将前端资源目录上传至Linux的/usr/local/nginx/html目录下
2.修改Nginx配置文件nginx.conf

 server {
        listen       80;
        server_name  localhost;

        location / {
            root   html/dist;
            index  index.html;
        }
		
		location ^~ /api/ {
			rewrite ^/api/(.*)$ /$1 break;
			proxy_pass http://192.168.138.101.80;
		}
		
        location = /50x.html {
            root   html;
        }
    }

3.通过nginx访问前端工程
就是安装Nginx的服务器,访问自己的ip地址
http://192.168.138.100

前端工程部署完成之后,我们可以正常的访问到系统的登录页面。

服务端部署
1). 在服务器B(192.168.138.101)中安装jdk、git、maven、MySQL,使用git clone命令将git远程仓库的代码克隆下来

#创建java代码存放目录
mkdir -p /usr/local/javaapp

#切换目录
cd /usr/local/javaapp

#克隆代码 , 需要使用自己的远程仓库
git clone https://xxxxxxxxxxxx

将资料中提供的reggieStart.sh文件上传到服务器B,通过chmod命令设置执行权限
chmod 777 reggieStart.sh

执行reggieStart.sh脚本文件,自动部署项目
脚本代码:

#!/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/javaapp/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 项目启动完成


在这里插入图片描述

执行完shell脚本之后,我们可以通过 ps -ef|grep java 指令,查看服务是否启动。

最后访问系统测试进行测试,就是部署后端项目的服务器
http://192.168.138.101/

图片展示问题处理
在上述的测试中,我们发现菜品的图片无法正常展示。原因是因为,在我们的配置文件中,图片信息依然是从 D:/img 中加载的,但是在Linux服务器中,是不存在D盘的。

1). 修改文件存储目录

将文件存储目录修改为:

reggie:
  path: /usr/local/img/

修改完成之后,需要将变动的代码提交到本地仓库,并推送至远程仓库。

2). 执行shell脚本,进行自动化部署,和之前一样的步骤

3). 将本地的测试图片文件夹img(整个文件夹)上传到服务器B的/usr/local目录下
在这里插入图片描述
4).再次访问测试
http://192.168.138.101/
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值