当前位置: 首页 > java >正文

记录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;}
http://www.xdnf.cn/news/15223.html

相关文章:

  • C++类模版2
  • BERT:双向Transformer革命 | 重塑自然语言理解的预训练范式
  • 事件驱动设计:Spring监听器如何像咖啡师一样优雅处理高并发
  • Linux的NetworkManager的nmcli配置网桥(bridge) 笔记250712
  • Linux操作系统之进程间通信:共享内存
  • 同步、异步、阻塞、非阻塞之间联系与区别
  • SOEM build on ubuntu
  • 2025Stockapi股票数据接口,股票实时数据,技术指标macd,kdj,cci技术指标算法,集合竞价数据,龙虎榜数据接口
  • 【图像处理基石】如何入门大规模三维重建?
  • Gameplay - 独立游戏Celeste的Player源码
  • Unity开发中常用的洗牌算法
  • 用 Jpom 10 分钟搭好一套轻量级 CICD + 运维平台
  • Python技巧记录
  • 电网失真下单相锁相环存在的问题
  • Redis专题总结
  • 【工具】什么软件识别重复数字?
  • AI产品经理面试宝典第11天:传统软件流程解析与AI产品创新对比面试题与答法
  • 分布式数据库系统模式结构深度解析
  • C++ 模板工厂、支持任意参数代理、模板元编程
  • 科技驯服烈日狂沙:中东沙漠农场的光储革命
  • 开发AI Agent到底用什么框架——LangGraph VS. LlamaIndex,一文看懂!
  • 使用Java完成下面程序
  • docker 443错误 lookup docker.mirrors.ustc.edu.cn: no such host
  • CCF CSP第一轮认证一本通
  • 深度学习-卷积化
  • 【离线数仓项目】——电商域DWD层开发实战
  • 【C++小白逆袭】内存管理从崩溃到精通的秘籍
  • EPLAN 电气制图(七):电缆设计全攻略
  • 【设计模式】外观模式(门面模式)
  • 人工智能安全基础复习用:可解释性