记录Ruoyi-vue-pro芋道商城部署过程
记录Ruoyi-vue-pro芋道商城部署过程
- 前言
- 服务器准备
- Nginx安装
- Nginx下载
- Docker、Docker-compose容器安装
- Docker安装
- Docker-compose安装
- MySql 安装
- my.cnf文件配置
- docker-compose.yaml文件配置
- 运行Mysql容器
- Redis安装
- docker-compose.yaml文件配置
- redis.conf配置文件修改
- 运行Redis
- Ruoyi-vue-pro后端部署
- docker-compose文件配置
- Dockerfile文件配置
- 运行容器
- 后端Nginx反向代理及前端管理端配置
- 前端——管理端
- 商城端 uni-app
前言
相信不少伙伴都知道芋道商城系统,这里就不做介绍,主要是记录如何完整部署Ruoyi-vue-pro芋道商城系统,这里作者部署的是单体,不是分布式微服务,故不记录分布式微服务部署。
服务器准备
1、操作系统Centos7.9 2核2G 阿里云或其他云端服务器
2、数据库MySql 9.1.0或latest
3、Redis缓存数据库 7.2.3或latest
4、Nginx web服务器 1.26.3或latest
5、Docker 、Docker-compose
6、jdk 21 的版本
MySql、Redis使用容器部署,Nginx是本地化部署。
Nginx安装
nginx主要使用本地化部署
Nginx下载
官网下载地址:https://nginx.org/en/download.html
安装过程请看这里:https://blog.csdn.net/andyLyysh/article/details/127322789?spm=1001.2014.3001.5502
Docker、Docker-compose容器安装
Docker安装
1、安装软件包
yum install -y yum-utils2、设置阿里云镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3、更新软件包索引
yum makecache fast4、安装docker
yum -y install docker-ce docker-ce-cli containerd.io5、启动docker
systemctl start docker停止docker
systemctl stop docker重启
systemctl restart docker6、查看版本号
docker version7、设置开机自启
systemctl enable docker.service
Docker-compose安装
官网:https://docs.docker.com/compose/compose-file/compose-file-v3/安装:
curl -L https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose分配权限
chmod +x /usr/local/bin/docker-compose查看版本
docker-compose --version使用Docker-compose.yml文件构建容器常用命令:
查看帮助
docker-compose -h启动所有docker-compose服务
docker-compose up启动所有docker-compose服务并后台运行
docker-compose up -d停止并删除容器、网络、卷、镜像
docker-compose down进入容器
docker-compose exec yml里面的服务ID
docker-compose exec yml里面的服务ID /bin/bash查看所有容器
docker-compose ps查看进程
docker-compose top查看容器输出日志
docker-compose logs yml里面的服务ID检查配置
docker-compose config检查配置,有问题才输出
docker-compose config -q重启服务
docker-compose restart启动服务
docker-compose start停止服务
docker-compose stop
MySql 安装
my.cnf文件配置
[client]
socket=/tmp/mysql.sock
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4[mysqld]
socket=/tmp/mysql.sock
character-set-server=utf8mb4
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
skip-name-resolvelower_case_table_names=1
docker-compose.yaml文件配置
services:mysql:image: mysql:latestcontainer_name: ruoyi-mysqlhostname: ruoyi-mysqlprivileged: truerestart: alwaysenvironment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: zhushxxxxxxMYSQL_HOST: '%'ports:- 3306:3306volumes:- ./mysql/log:/var/log/mysql- ./mysql/data:/var/lib/mysql- ./mysql/my.cnf:/etc/mysql/my.cnf- /etc/localtime:/etc/localtime:ronetworks:mysql-network:ipv4_address: 172.110.0.7networks:mysql-network:driver: bridgeipam:config:- subnet: 172.110.0.0/24name: mysql-network
运行Mysql容器
在docker-compose.yaml文件所在的目录运行如下命令即可启动MySql
docker-compose up -d
Redis安装
docker-compose.yaml文件配置
services:ruoyi-redis:image: redis:6.0container_name: xinshan-redishostname: xinshan-redisprivileged: truerestart: alwaysenvironment:TZ: Asia/Shanghaiports:- 6379:6379volumes:- ./redis/data:/data- ./redis/redis.conf:/etc/redis/redis.confcommand: "redis-server /etc/redis/redis.conf --appendonly yes --requirepass ruoyi!735@6"networks:redis-network:ipv4_address: 172.112.0.7networks:redis-network:driver: bridgeipam:config:- subnet: 172.112.0.0/24name: redis-network
redis.conf配置文件修改
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为no
daemonize no
# 密码,设置后访问Redis必须输入密码
requirepass ruoyi!735@6
运行Redis
在docker-compose.yaml文件所在的目录运行如下命令即可启动
docker-compose up -d
Ruoyi-vue-pro后端部署
注意:需要不同系统,需在父工程pom文件和yudao-server的pom文件中放开引入包
修改mysql和redis的访问地址、账户和密码,修改好后即可打包
使用maven进行打包
mvn clean package -Dmaven.test.skip=true
docker-compose文件配置
services:yudao-server:build:context: ./yudao-servercontainer_name: yudao-serverprivileged: truerestart: alwaysenvironment:TZ: Asia/Shanghaihostname: yudao-serverimage: yudao-serverports:- 48080:48080depends_on:- ruoyi-redis- ruoyi-mysqlnetworks:shopping-network:ipv4_address: 172.69.0.4volumes:- ./yudao-server/logs/:/root/logs/- /usr/share/fonts:/usr/share/fonts- /app/skywalking-agent/:/app/skywalking-agent/networks:shopping-network:driver: bridgeipam:config:- subnet: 172.69.0.0/24name: shopping-network
Dockerfile文件配置
FROM eclipse-temurin:21-jreMAINTAINER zhush(andycabbage@163.com)
RUN mkdir -p /yudao-server
WORKDIR /yudao-server
## 设置 TZ 时区
ENV TZ=Asia/ShanghaiCOPY ./yudao-server.jar yudao-server.jarEXPOSE 48080
CMD java -jar -Xms512m -Xmx512m -Xss256k -XX:SurvivorRatio=8 -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=dev -Dfile.encoding=utf-8 yudao-server.jar
运行容器
在docker-compose.yaml文件所在的目录运行如下命令即可启动
docker-compose up -d --build
以上是整个后端部署过程,至此后端部署完毕,接下来部署前端
后端Nginx反向代理及前端管理端配置
server {listen 443 ssl;server_name xxx.xxxx.com;charset utf-8;ssl_certificate /data/zhush/ssl/xxxx.xxxx.com.pem;ssl_certificate_key /data/zhush/ssl/xxxx.xxxx.com.key;ssl_session_timeout 10m;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!3DES:!DH:!DHE:!DES;ssl_prefer_server_ciphers on;# 前端项目 - 管理端location / {root /data/zhush/yudao-ui-admin/dist/;index index.html index.htm;try_files $uri $uri/ /index.html;}## 后端项目 - 管理后台location /admin-api/ { proxy_pass http://xx.xxx.x.xx:48080/admin-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_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}## 后端项目 - 用户 Applocation /app-api/ {proxy_pass http://xx.xxx.x.xx:48080/app-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_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}// websocket 客服中心location /infra/ws { proxy_pass http://xx.xxx.x.xx:48080/infra/ws;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_set_header X-Forwarded-Proto $scheme;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}access_log /data/zhush/nginx/ xxxx.xxx.xx.access.log;error_log /data/zhush/nginx/ xxxx.xxx.xx.error.log;}
前端——管理端
Ruoyi-vue3-admin
打包
npm run build:dev
商城端 uni-app
打包使用Hbuild开发工具,这里不做介绍
Nginx代理配置
server {listen 443 ssl;server_name xxxx.xxx.xx.com;charset utf-8;ssl_certificate /data/zhush/ssl/ xxxx.xxx.xx.com.pem;ssl_certificate_key /data/zhush/ssl/ xxxx.xxx.xx.com.key;ssl_session_timeout 10m;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!3DES:!DH:!DHE:!DES;ssl_prefer_server_ciphers on;location / {root /data/zhush/mall/h5/;index index.html index.htm;try_files $uri $uri/ /index.html;}access_log /data/zhush/nginx/ xxxx.xxx.xx.access.log;error_log /data/zhush/nginx/ xxxx.xxx.xx.error.log;}