程序汪若依微服务华为云Linux部署保姆教程

图片

若依官方有3个版本,程序汪以前已经出了对应的安装部署视频教程

  1. 单应用版本

  2. 前后分离版本

  3. 微服务版本

本视频是若依微服务版本,如果基础的环境软件都不会安装建议看下程序汪的单应用和前后端分离版本教程,

欢迎点击进入

  1. (单应用版本)若依项目实战部署保姆教程

  2. (前后分离版本)若依项目实战部署保姆教程 

程序汪在单应用版本和前端分离版本已经非常详细介绍了环境的安装,本次教程jdk maven git这些基础的我就不重复演示怎么安装了,老规矩还是云服务器上部署项目。

图片

图片

本教程特点(希望小白都能运行成功)

  • 保姆级教程=笔记(本文章)+视频(B站视频)

看完本教程你会学到

  • 项目下载

  • 运行

  • 配置

  • 打包

  • 前后端的部署

  • nacos
  • sentinel

图片

(视频教程站 B站 我是程序汪)

图片

图片

图片

图片

笔记 建议结合视频观看


图片

图片

前置安装
 

JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 10
Git
Nginx

以上基础配置默认已经按照版本要求安装完成,如果是完全从零开始请移步以下网址:(只需要安装到Nginx即可)

传送门:https://mp.weixin.qq.com/s/FqfGbYRvhiTU7q0aB1d2EA

1. 下载代码及配置数据库

注意:在clone代码之前,需要在gitee管理后台中添加服务器的SSH公钥。详见https://gitee.com/help/articles/4191

 

cd /data/gitee/
git clone git@gitee.com:y_project/RuoYi-Cloud.git
 
下面配置数据库,这里有两种方式,一种是使用客户端工具比如navicat连到上面创建的数据库和表,另外一种是直接使用docker来执行sql,我这里使用第二种,如果不是用docker安装的可以直接用客户端创建
 
cd RuoYi-Cloud/sql
docker cp ry_20210210.sql mysql:/ry_20210210.sql
 
docker cp ry_config_20210228.sql mysql:/ry_config_20210228.sql
 
docker cp quartz.sql mysql:/quartz.sql
 
docker exec -it mysql bash
ls一下看下是不是三个sql都在
mysql -u root -p
然后输入数据库密码按回车,我这里安装的数据库密码是
Vv0IBQ5qST
看到提示符mysql>说明成功,先创建数据库,注意在命令行里输入:
CREATE DATABASE `ry-cloud` CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `ry-config` CHARACTER SET utf8 COLLATE utf8_general_ci;
 
创建完数据库后输入exit退出命令行
然后依次导入三张表数据,每次回车后都需要输入密码
mysql -u root -p -D ry-cloud < ry_20210210.sql
mysql -u root -p -D ry-cloud < quartz.sql
mysql -u root -p -D ry-config < ry_config_20210228.sql
 
最后退出docker容器
exit
2. nacos(奶可斯)

微服务版本依赖于nacos做为配置中心,需要前置安装,这里选定一个比较稳定的版本,当然也可以自行去官网下载1.x的最新版

 

将软件包中的nacos-server-1.3.2.zip通过工具上传到/data/tmp
cd /data/tmp
unzip -d /data/service/ nacos-server-1.3.2.zip
cd /data/service/nacos
vi conf/application.properties
 
这个配置文件增加如下配置:
----------------------------------------------
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=Vv0IBQ5qST
----------------------------------------------
注意上面的数据库密码改成自己设置的
 
启动nacos,首先确保第一步nacos的数据库配置已经OK了
cd /data/service/nacos/bin
./startup.sh -m standalone &
然后 ps -ef | grep nacos 一下看下启动是否成功
 
浏览器访问 http://124.70.193.43:8848/nacos/#/login
用户名密码默认都是 nacos
注意:如果访问不了很可能是云服务器的网络策略不允许本机访问8848端口,需要自行在云服务器配置网络策略,登陆进去后如果在配置列表里能看到所有的配置文件说明就没问题了
 
这里的配置文件是一些参数的修改,比如mysql的配置,redis的配置等等,大多数的配置都是默认的就好,因为都是安装在本地的,只需要改下两个服务的mysql的密码就好
 
1. 点开 ruoyi-system-dev.yml 后面的编辑按钮:
在配置里找到数据库密码的配置修改为自己的密码即可,然后点击发布按钮
datasource:
          # 主库数据源
          master:
            driver-class-name: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
            username: root
            password: Vv0IBQ5qST
            
2. 点开 ruoyi-job-dev.yml 后面的编辑按钮:
在配置里找到数据库密码的配置修改为自己的密码即可,然后点击发布按钮
datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
    username: root
    password: Vv0IBQ5qST
    
3. sentinel(省特漏)

微服务版本依赖于sentinel做网关的限流,需要前置安装,这里选定一个比较稳定的版本,当然也可以自行去官网下载1.x的最新版

 

将软件包中的sentinel-dashboard-1.8.0.jar通过工具上传到/data/tmp,注意不要解压
cd /data/tmp
cp sentinel-dashboard-1.8.0.jar /data/service
cd /data/service
 
执行以下命令,注意端口号最好保持一致,否则后面配置也要同步修改
nohup java -Dserver.port=8718 -Dcsp.sentinel.dashboard.server=localhost:8718 -jar sentinel-dashboard-1.8.0.jar &
 
确保启动成功,最好 ps -ef | grep sentinel 看下
浏览器访问 http://124.70.193.43:8718/#/login
用户名密码默认都是 sentinel
注意:如果访问不了很可能是云服务器的网络策略不允许本机访问8718端口,需要自行在云服务器配置网络策略

4. 后端打包与启动
 

先创建一个打包后的目录,所有打包后的jar文件都集中放在这里:
mkdir -p /data/app/ruoyi-cloud
 
然后用maven打包
cd /data/gitee/RuoYi-Cloud
mvn clean install
等待很长一段时间后出现BUILD SUCCESS表示成功
 
接下来就是一个个服务的启动了,由于是微服务版本,需要启动的服务比较多,先把每个打包好的jar包统一拷贝到一起,然后挨个启动就好了
首先是网关服务
cp /data/gitee/RuoYi-Cloud/ruoyi-gateway/target/ruoyi-gateway.jar /data/app/ruoyi-cloud/ruoyi-gateway.jar
权限服务
cp /data/gitee/RuoYi-Cloud/ruoyi-auth/target/ruoyi-auth.jar /data/app/ruoyi-cloud/ruoyi-auth.jar
管理后台
cp /data/gitee/RuoYi-Cloud/ruoyi-modules/ruoyi-system/target/ruoyi-modules-system.jar /data/app/ruoyi-cloud/ruoyi-modules-system.jar
监控模块
cp /data/gitee/RuoYi-Cloud/ruoyi-visual/ruoyi-monitor/target/ruoyi-visual-monitor.jar /data/app/ruoyi-cloud/ruoyi-visual-monitor.jar
定时任务模块
cp /data/gitee/RuoYi-Cloud/ruoyi-modules/ruoyi-job/target/ruoyi-modules-job.jar /data/app/ruoyi-cloud/ruoyi-modules-job.jar
文件模块
cp /data/gitee/RuoYi-Cloud/ruoyi-modules/ruoyi-file/target/ruoyi-modules-file.jar /data/app/ruoyi-cloud/ruoyi-modules-file.jar
 
都拷贝完成后进入目录挨个启动
cd /data/app/ruoyi-cloud/
nohup java -jar ruoyi-gateway.jar &
nohup java -jar ruoyi-auth.jar &
nohup java -jar ruoyi-modules-system.jar &
 
以上三个是运行程序必须启动的,后面三个是可选的,分别是监控、job、文件系统,这几个用处不大,可以用到的时候再启动
 
nohup java -jar ruoyi-visual-monitor.jar &
nohup java -jar ruoyi-modules-job.jar &
nohup java -jar ruoyi-modules-file.jar &
5. 运行前端
 

cd /data/gitee/RuoYi-Cloud/ruoyi-ui
 
npm install --registry=https://registry.npm.taobao.org
 
npm run build:prod
mkdir /data/app/ruoyi-ui
mv dist/* /data/app/ruoyi-ui/
 
接下来把静态页面配置到Nginx中
vim /usr/local/nginx/conf/nginx.conf
注释掉默认location节点,替换成以下节点
 
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:8080/;
}
 
保存后重新加载一下
/usr/local/nginx/sbin/nginx -s reload
6. 访问页面测试

在浏览器里直接输入云服务器的ip即可,比如我的是 http://124.70.193.43/

用户名是 admin

密码是 admin123

欢迎添加程序汪VX  itwang007      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字符驱动程序-LCD驱动开发

一、驱动程序的框架 总共分为五步&#xff1a; 1、自己设定或者系统分配一个主设备号 2、创建一个file_operations结构体 这个结构体中有操作硬件的函数&#xff0c;比如drv_open、drv_read 3、写一个注册设备驱动函数 需要register_chrdev(major,name,结构体)&#xff0…

各种需要使用的方法-->vue/微信小程序/layui

各种需要使用的方法-->vue/微信小程序/layui 1、vue里样式不起作用的方法&#xff0c;可以通过deep穿透的方式2、 js获取本周、上周、本月、上月日期3、ArrayBuffer Blob 格式转换ArrayBuffer与Blob的区别ArrayBuffer转BlobBlob转ArrayBuffer需要借助fileReader对象 4、使用…

2015年认证杯SPSSPRO杯数学建模D题(第一阶段)城市公共自行车全过程文档及程序

2015年认证杯SPSSPRO杯数学建模 D题 城市公共自行车 原题再现&#xff1a; 城市交通问题直接影响市民的生活和工作。在地形平坦的城市&#xff0c;公共自行车出行系统是一种很好的辅助手段。一般来说&#xff0c;公共自行车出行系统由数据中心、驻车站点、驻车桩、自行车&…

python初级第一次作业

一、 dayint(input("enter today day")) fdayint(input("enter num of day since today")) c((fday%7)day)%7 if c0:print("sunday") elif c1:print("monday") elif c2:print("tuesday") elif c3:print("wendnsday&quo…

openGauss + Datakit搭建openGauss运维平台

系统架构OS 硬件需求&#xff1a;2c4g [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# uname -m x86_64 [rootlocalhost ~]# hostname -I 192.168.92.32 下载地址&#xff1a;https://opengauss.org/zh/download/ 下载…

Kubernetes概念:服务、负载均衡和联网:2. Gateway API

Gateway API 官方文档&#xff1a;https://kubernetes.io/zh-cn/docs/concepts/services-networking/gateway/ Gateway API 通过使用可扩展的、角色导向的、 协议感知的配置机制来提供网络服务。它是一个附加组件&#xff0c; 包含可提供动态基础设施配置和高级流量路由的 API…

[音视频学习笔记]八、FFMpeg结构体分析 -上一个项目用到的数据结构简单解析:AVFrame、AVFormatContext、AVCodecContext

前言 上次我们做了一个简单的视频解码&#xff0c;MediaPlay-FFmpeg - Public 这一次简单对这个代码进行一个剖析&#xff0c;对其中的数据结构进行一个解析。 这些数据结构之间的关系 AVFrame 、AVFormatContext 、AVCodecContext 、AVIOContext 、AVCodec 、AVStream 、AV…

从政府工作报告中的IT热词统计探计算机行业发展(三)智能网联新能源汽车:2次

从政府工作报告探计算机行业发展 政府工作报告作为政府工作的全面总结和未来规划&#xff0c;不仅反映了国家整体的发展态势&#xff0c;也为各行各业提供了发展的指引和参考。随着信息技术的快速发展&#xff0c;计算机行业已经成为推动经济社会发展的重要引擎之一。因此&…

3.24作业

基于UDP的网络聊天室 项目需求&#xff1a; 如果有用户登录&#xff0c;其他用户可以收到这个人的登录信息如果有人发送信息&#xff0c;其他用户可以收到这个人的群聊信息如果有人下线&#xff0c;其他用户可以收到这个人的下线信息服务器可以发送系统信息 服务器端代码 #in…

matlab-双树复小波变换DTCWT(转自 MathWorks)

此示例展示了双树复小波变换 (DTCWT) 如何在信号、图像和体积处理方面提供优于临界采样 DWT 的优势。DTCWT 作为两个独立的双通道滤波器组来实现。为了获得本示例中描述的优点&#xff0c;您不能任意选择两个树中使用的缩放和小波滤波器。一棵树的低通&#xff08;缩放&#xf…

Github多账号共存

在开发阶段&#xff0c;如果同时拥有多个开源代码托管平台的账户&#xff0c;在代码的管理上非常麻烦。那么&#xff0c;如果同一台机器上需要配置多个账户&#xff0c;怎样才能确保不冲突&#xff0c;不同账户独立下载独立提交呢&#xff1f; 我们以两个github账号进行演示 …

docker desktop启动Kibana:No living connections, Error: No Living connections

Kibana启动之后一直报Kibana server is not ready yet 查看日志&#xff1a;No living connections, Error: No Living connections,连接ES失败&#xff01; 查看配置文件内容 /usr/share/kibana/config/kibana.yml 经过一系列查找资料和尝试之后&#xff0c;亲测以下方法可用…

阿里二面:谈谈ThreadLocal的内存泄漏问题?问麻了。。。。

引言 ThreadLocal在Java多线程编程中扮演着重要的角色&#xff0c;它提供了一种线程局部存储机制&#xff0c;允许每个线程拥有独立的变量副本&#xff0c;从而有效地避免了线程间的数据共享冲突。ThreadLocal的主要用途在于&#xff0c;当需要为每个线程维护一个独立的上下文…

字节算法岗二面,凉凉。。。

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总…

分治归并问题

“别让自我被拯救~” 谈谈归并与分治 当我们首次接触排序算法时&#xff0c;一定对所谓 "归并"方式排序的算法感到头疼~ 因为&#xff0c;我们难以形象出其不断 "分离"时&#xff0c;各个区域的状态。然而&#xff0c;即便 "归并"排序算法的学习…

新能源汽车充电桩消防安全视频智能可视化监管建设方案

一、方案背景 据应急管理部门统计公布的数据显示&#xff0c;仅2023年第一季度&#xff0c;新能源汽车自燃率就上涨了32%&#xff0c;平均每天就有8辆新能源汽车发生火灾&#xff08;含自燃&#xff09;。在已查明起火原因中&#xff0c;58%源于电池问题&#xff0c;19%源于碰…

输出当前时间

用途&#xff1a;在项目中一些属性中设置当前时间 实例代码 import java.time.LocalDateTime; import java.time.format.DateTimeFormatter;public class time {public static void main(String[] args){LocalDateTime china LocalDateTime.now(); DateTimeFormatter forma…

ASPICE学习笔记 ———— 过程模型(Process reference model)

文章目录 介绍过程模型Primary life cycle processes categoryAcquisition Process GroupSupply Process GroupSystem Engineering Processes GroupSoftware Engineering Processes Group Supporting life cycle processes categoryOrganizational life cycle processes catego…

【活动预告】本周四(3月28日)AI算法大模型备案线上活动

Al算法备案中心特邀十年合规专家「乐歌」&#xff0c;于本周四进行线上算法备案活动 支持AI创业者&#xff0c;免费咨询算法备案 3.28日20&#xff1a;00腾讯会议欢迎参与&#xff01; 扫码添加活动助理报名参加&#xff01;

四川宏博蓬达法律咨询有限公司:您身边的法律守护者

在快节奏的现代生活中&#xff0c;法律咨询服务已成为人们不可或缺的一部分。四川宏博蓬达法律咨询有限公司正是这样一个值得您信赖的法律服务伙伴。我们专注于为客户提供专业、高效、安全的法律服务&#xff0c;致力于成为您生活中的法律守护者。 一、专业团队&#xff0c;服务…