前后端部署

1、虚拟机环境
2、编译环境:jdk、node.js、nginx
3、版本管理工具:Git
4、docker环境安装:mysql、redis
5、代码拉取、文件配置

虚拟机环境

参考文章:https://www.cnblogs.com/HelloM/p/13519667.html

编译环境

jdk环境安装
JDK版本>8,可以在官网地址下载。https://www.oracle.com/java/technologies/downloads/#java8

#进入安装包目录,解压
cd /data/tmp
tar -zxvf jdk-8u261-linux-x64.tar.gz

#把解压出来的文件夹转移到统一的地方,这个service是存放你jdk环境的地方,谨慎选择
mv /data/tmp/jdk1.8.0_261 /data/service/jdk1.8.0_261

#修改环境变量/etc/profile,JAVA_HOME修改为自己的jdk路径。
vim /etc/profile
export JAVA_HOME=/data/service/jdk1.8.0_261
export PATH=$PATH:$JAVA_HOME/bin

#使环境变量生效
source /etc/profile

#检查是否配置成功
java -version

Node.js安装
安装教程:https://www.runoob.com/nodejs/nodejs-install-setup.html
历史版本下载:https://nodejs.org/dist/

#解压安装包,配置运行
tar xf node-v14.15.4-linux-x64.tar.xz       // 解压
cd node-v14.15.4-linux-x64/                 // 进入解压目录
./bin/node -v                               // 执行node命令 查看版本

//解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:
mv /data/tmp/node-v14.15.4-linux-x64 /data/service/

#这个坑得注意,是小写的L,不是大写的i,仔细看
ln -s /data/service/node-v14.15.4-linux-x64/bin/npm   /usr/local/bin/
ln -s /data/service/node-v14.15.4-linux-x64/bin/node   /usr/local/bin/

Nginx安装
需要作为转发代理服务器,前端向后端发送请求

#首先安装nginx前置软件
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
#下载nginx软件安装包
cd /data/tmp
wget http://nginx.org/download/nginx-1.19.6.tar.gz
tar -zxvf nginx-1.19.6.tar.gz
cd nginx-1.19.6
#设置安装目录为/usr/local/nginx
./configure --prefix=/usr/local/nginx
make
make install
#启动nginx
/usr/local/nginx/sbin/nginx

Git安装

Git是用来进行代码的版本管理、在项目中可以同步远端的代码,也可以将自己的代码同步到远端。在这里主要是用来拉取开源项目代码。

#通过yum安装,本方法最简单。但是无法控制安装的版本
yum -y install git

#检查是否配置成功
git --version

#生成公钥、后面这个是邮箱,别搞错了
ssh-keygen -t rsa -C "xx@xx.com"

#查看生成的公钥
cat ~/.ssh/id_rsa.pub

在这里插入图片描述

Docker

Docker的安装

#安装docker
yum install –y docker

#设置开机自启
systemctl enable docker

#重启
reboot

######################如果安装出现了问题,卸载旧版本################################
sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine
                
#安装 Docker Engine-Community
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager \
  --add-repo \
  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker

#安装docker
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm

mysql安装,之所以在docker上安装,主要就是很方便。我在这台主机上部署了以后,就可以mysql单独抽象成一个主机在运行数据库。

#查看可用的 MySQL 版本
docker search mysql
#拉取5.7版本
docker pull mysql:5.7
#创建配置文件目录
mkdir -p /data/docker/mysql/conf
#进入配置文件目录,添加一个配置文件
vim my.cnf
#启动镜像,那个root是密码哈!
docker run -p 3306:3306 --name mysql -v /data/docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root-d mysql:5.7

#进入docker容器设置env LANG=C.UTF-8,这是进入容器的命令交互界面
docker exec -it mysql env LANG=C.UTF-8 bash

#连接mysql,之后输入密码,就可以进入数据库啦
mysql -u root -p

#外部工具随便连、虚拟机ip+3306端口

redis安装

#拉取镜像
docker pull redis:latest

#创建容器,并运行
docker run -itd --name redis-test -p 6379:6379 redis

部署

数据库配置

先连接上数据库,执行sql脚本,这样做的好处可以避免sql执行后成乱

1、创建sql窗口,脚本复制
2、点击左边项目,Scripts下面的窗口,设置属性,如果是GBK,则转换成utf-8
3、点击sql窗口的橙色按钮、执行sql脚本

在这里插入图片描述

代码拉取
#clone项目源代码
git clone git@gitee.com:y_project/RuoYi-Vue.git
后端打包部署

由于我maven没装,所以在虚拟机外面打好包,再丢到虚拟机中。但配置是一个意思。
在这里插入图片描述
手动idea打包,打成的包需要用shell工具丢到虚拟机中
在这里插入图片描述
执行jar就可以了

nohup java -jar ruoyi-admin.jar &
前端打包部署

进入前端目录中

# 进入项目目录
cd /data/gitee/RuoYi-Vue/ruoyi-ui

# 打包正式环境
npm run build:prod

#创建文件、移动一下。换个地方避免混淆
mkdir /data/app/ruoyi-ui
mv dist/* /data/app/ruoyi-ui/

nginx的配置

#把生成好的 dist 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html 是后台服务的入口页面。
vim /usr/local/nginx/conf/nginx.conf

#配置文件的具体内容
location / {
          root   /data/app/ruoyi-ui;
try_files $uri $uri/ /index.html;
          index index.html index.htm;
      }
       
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:18081/;
}

#重新加载配置文件nginx
/usr/local/nginx/sbin/nginx -s reload

在这里插入图片描述
部署好了,在虚拟机外访问。ip+80端口号,http://192.168.0.130:80。这里解释一下,ip呢,是我自己虚拟机的ip,80是nginx配置的代理端口,你从这个端口进去,访问到nginx下的静态资源,然后又通过proxy_pass转发后端api请求。

注意:如果浏览器访问不了虚拟机,你瞅瞅widow电脑能不能ping通虚拟机,如果可以,再试试把虚拟机防火墙关闭,再访问部署网站。

--查看正在运行进程
ps -a 
kill 999

--关闭防火墙
systemctl stop firewalld
status
start

真实服务器肯定是不可以这样滴,正常情况下我们还是要开端口,保持防火墙开着

#查看开启端口
firewall-cmd --zone=public --list-ports

#开启端口,--permanent,永久生效
firewall-cmd --zone=public --add-port=18081/tcp

#删除端口
 firewall-cmd --zone=public --remove-port=80/tcp

#更详细的防火墙操作参考地址
https://m.php.cn/article/452612.html
Logo

快速构建 Web 应用程序

更多推荐