96SEO 2026-02-23 13:47 27
署若依-微服务版本浏览器验证k8s部署若依-微服务版本浏览器验证总结

若依是一个合适新手部署练习的开源的微服务项目本篇讲解Windows部署若依微服务、docker部署若依微服务、k8s部署若依微服务等3种方式。
若依是一个基于SpringBoot2.0的权限管理系统同时使用到了mysql、redis、nacos等技术这里更好理解一下java程序是如何使用nacos的。
下载若依的源代码https://gitee.com/y_project/RuoYi-Cloud克隆/下载下载ZIP即可。
下载后解压到D:\ruoyi-cloud文件夹即可。
按照官网我们部署若依微服务版本https://doc.ruoyi.vip/ruoyi-cloud/
下载地址https://javadl.oracle.com/webapps/download/GetFile/1.8.0_301-b09/d3c52aa6bfa54d3ca74e617f18309292/windows-i586/jdk-8u301-windows-x64.exe
打开环境变量配置。
计算机→属性→高级系统设置→高级→环境变量在系统变量中配置。
配置JAVA_HOME。
新建变量名JAVA_HOME变量值jdk路径我的路径是C:\Program
配置CLASSPATH。
新建变量名CLASSPATH变量值等于.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar第一个分号前面有一个点。
配置Path。
选中Path变量点编辑按钮在变量值最前加入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
下载Windows的zip包https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.zip
https://nodejs.org/dist/v14.4.0/node-v14.4.0-win-x64.zip
-v#这里为了方便使用Linux部署mysql当然使用Windows安装也是可以的Windows安装也很简单。
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar
mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar
mariadb-libs-5.5.68-1.el7.x86_64
mysql-community-common-5.7.38-1.el7.x86_64.rpm
mysql-community-libs-5.7.38-1.el7.x86_64.rpm
mysql-community-client-5.7.38-1.el7.x86_64.rpm
mysql-community-server-5.7.38-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.38-1.el7.x86_64.rpm
mysql-community-devel-5.7.38-1.el7.x86_64.rpm
mysql-community-embedded-5.7.38-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.38-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.38-1.el7.x86_64.rpm
先执行源码包里的RuoYi-Cloud-master\sql目录下的ry_config_20220929.sql文件该文件里面有创建ry_config库和表的语句
Premium链接mysql数据库选择运行SQL文件导入即可。
由于ry_20230706.sql文件没有创建库的语句根据官网得知是要创建一个名称叫做ry-cloud的库所以参照ry_config_20220929.sql文件里面的建
库语句复制粘贴并添加到ry_20230706.sql文件开头即可注意修改库名为ry-cloud
ry-cloud;最后执行ry_20230706.sql文件即可。
这样两个必要的ry-cloud库和ry_config库都准备好了。
ry-cloud库是若依系统使用的库ry_config库是nacos的库。
quartz.sql也可以导入ry-cloud库可选。
#这里为了方便使用Linux部署redis当然使用Windows安装也是可以的Windows安装也很简单。
链接成功即可。
这里默认redis没有配置密码。
#这里为了方便使用Linux部署nacos当然使用Windows安装也是可以的Windows安装也很简单。
nacos需要jdk环境,所以linux服务器也要安装jdk。
#去https://www.oracle.com/java/technologies/downloads/下载对应版本的tar.gz包
CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#nacos-2.2.2版本及之后的版本对登录验证有改变需要自己配置所以这里安装nacos-2.2.1版本
https://github.com/alibaba/nacos/releases/download/2.2.1/nacos-server-2.2.1.tar.gz
#添加下面的链接mysql的语句注意修改mysql的IP和root密码
spring.datasource.platformmysql
db.url.0jdbc:mysql://192.168.244.150:3306/ry-config?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC
db.passwordAa123456#发现启动报错显示登录鉴权相关的报错官网说2.2.2之后才需要自己配置登录信息不知道2.2.1为什么也要配置所以就配置
nacos.core.auth.server.identity.keynacos
nacos.core.auth.server.identity.valuenacos
nacos.core.auth.plugin.nacos.token.secret.keyVkdocGMwbHpUWGxEZFhOMGIyMVRaV055WlhSTFpYa3dNVElocGMwbHpUWGxEZFhOMGIyMVRaV055WlhSTFpYa3dhZmR6TkRVMk56Zz0K#单机模式启动nacos
/root/nacos-server/nacos/logs/start.out
http://192.168.244.150:8848/nacos/#/login
登录之后一定要编辑修改每一个yml文件里面的全部的redis和mysql的相关配置比如redis的IP端口密码这里我没有配置redis的密码
mysql的IP端口root账号密码等信息修改之后点击发布即可。
#后端项目打包即后端项目打jar包
Eclipse会自动加载Maven依赖包初次加载会比较慢根据自身网络情况而定
注意修改全部的bootstrap.yml文件的redis地址nacos地址等信息bootstrap.yml文件基本在下面这样的路径
./ruoyi-auth/src/main/resources/bootstrap.yml
./ruoyi-gateway/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
./ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml
同时bootstrap.yml文件还要添加nacos的账号密码,如下
#这里保持默认是dev环境cloud:nacos:discovery:#
#修改完bootstrap.yml文件后注意保存在ruoyi项目的bin目录下执行package.bat打包Web工程默认是生成jar包可执行文件。
打包完成之后会在对应的子项目下target目录下生成jar包。
clean.bat可以清除jar包就是清除target目录下的文件。
jar包全都打包成功之后可以启动jar包了点击运行run-auth.bat文件运行启动auth即可启动没报错显示启动正常即可
可选#最后auth、Gateway、System均启动正常。
#前端项目打包即前端项目打制品包默认是dist目录
展开Eclipse里的若依项目下的rouyi-ui工程打开vue.config.js文件修改网关IP地址proxy:
https://cli.vuejs.org/config/#devserver-proxy[process.env.VUE_APP_BASE_API]:
#这个配置为gateway网关的IP和端口changeOrigin:
--registryhttps://registry.npmmirror.com#
#此命令是本地开发环境下直接启动前端执行后会在cmd查看打印登录url复制粘贴到浏览器打开若依登录页面即可账号密码默认自动回显了
#ruoyi-ui下的README.md文件说明了如何启动构建前端制品。
浏览器验证
上面windows演示的是dev开发环境这次我们使用docker部署prod生产环境。
#安装好docker,可参考https://blog.csdn.net/MssGuo/article/details/122694156同时要安装docker-compose
下载若依的源代码https://gitee.com/y_project/RuoYi-Cloud克隆/下载下载ZIP即可。
下载后上传到RuoYi-Cloud目录即可。
#安装jdk1.8
#去https://www.oracle.com/java/technologies/downloads/下载对应版本的tar.gz包
CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-version#安装mavenmaven用于给java程序打jar包
https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz
-v#安装npm,npm用于生成前端制品即给前端生成dist目录
https://nodejs.org/dist/v14.4.0/node-v14.4.0-linux-x64.tar.xz
#docker-compose文件可以看到每个容器暴露的宿主机端口
./ruoyi-auth/src/main/resources/bootstrap.yml
./ruoyi-gateway/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
./ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml
#修改bootstrap.yml文件中的环境配置为prodnacos
./ruoyi-auth/src/main/resources/bootstrap.yml
#修改为prod原来默认是devcloud:nacos:discovery:#
#nacos的IP地址因为等下nacos使用容器启动暴露的就是宿主机8848端口username:
#nacos的IP地址因为等下nacos使用容器启动暴露的就是宿主机8848端口username:
application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}#再修改前端vue.config.js配置文件
https://cli.vuejs.org/config/#devserver-proxy[process.env.VUE_APP_BASE_API]:
#修改为gateway的IP和端口等下docker启动的网关容器就是暴露8080端口changeOrigin:
#以上打包命令执行完成会在每个子项目里面生成target命令该target命令就存放有jar包#前端项目打包
--registryhttps://registry.npmmirror.com
#到底都有哪些环境在前端目录下的package.json文件中定义了好几种配置环境如下
#先修改mysql的建库建表语句不然mysql容器没有创建若依的数据库
#ry_20230706.sql是若依系统表ry_config_20220929.sql是nacos的库和表
#因为ry_20230706.sql文件里没有写创建库的语句所以这里手动添加创建ry-cloud库的语句库名是官网规定的。
ry-cloud;#nacos配置的数据库源在application.properties文件
nacos/conf/application.properties
#执行脚本脚本作用是拷贝前端、后端SQL文件到当前docker下#启动、创建mysql、nacos、redis容器
0.0.0.0:9848-9849-9848-9849/tcp,
#检查redis容器的日志输出正常在windows使用Redis
#默认的root密码在docker-compose.yml中写有
/root/RuoYi-Cloud/RuoYi-Cloud-master/docker/mysql
#这说明构建后的镜像里面根本没有建库建表的文件而ry-cloud库是docker-compose.yml文件指定的创建库名而已
ruoyi-mysql:/docker-entrypoint-initdb.d/
mysql/db/ry_config_20220929.sql
ruoyi-mysql:/docker-entrypoint-initdb.d/
/docker-entrypoint-initdb.d/ry_20230706.sql;
/docker-entrypoint-initdb.d/ry_config_20220929.sql;
Premium链接mysql数据库正常。
#重启nacos因为mysql仓库刚刚创建好所需要重启nacos容器
http://192.168.244.150:8848/nacos/index.html
#由于前面我们java项目的bootstrap.yml配置文件定义的nacos命名空间是prod所以在nacos上需要创建一个名称叫做prod的命名空间
--把每一个文件名中的dev改成prod如ruoyi-gateway-prod.yml--
点击克隆按钮完成克隆即可前面后端项目中的bootstrap.yml配置文件中的环境配置是prod所以nacos中要存在应用名称-环境配置.配置文件格式拼接起来的文件如ruoyi-gateway-prod.yml所以上面克隆的时候我们修改了文件的名称。
最后修改prod命名空间下的每个yml文件中的redismysql相关的配置最后发布即可。
#启动、创建前端和后端容器
#从该文件可以看到前端使用nginx配置nginx配置文件中配置了代理的网关IP地址默认不用修改该文件
1、首先需要一个k8s集群默认你已经安装好了k8s集群并且有动态存储供给。
2、下载若依的源码包并上传到服务器master节点上也可以放到一台单独的服务。
mysql-svctemplate:metadata:annotations:labels:app:
host-timeupdateStrategy:rollingUpdate:partition:
RollingUpdatevolumeClaimTemplates:-
PersistentVolumeClaimmetadata:name:
ReadWriteOnceresources:requests:storage:
#ry_20230706.sql是若依系统表ry_config_20220929.sql是nacos的库和表
#因为ry_20230706.sql文件里没有写创建库的语句所以这里手动添加创建ry-cloud库的语句库名是官网规定的。
redis-svctemplate:metadata:labels:app:
redis-confvolumeClaimTemplates:-
PersistentVolumeClaimmetadata:name:
ReadWriteOnceresources:requests:storage:
mysql-svc.defaultmysql.db.name:
#nacos要连接ry-config数据库mysql.port:
nacosannotations:pod.alpha.kubernetes.io/initialized:
truespec:affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:-
labelSelector:matchExpressions:-
kubernetes.io/hostnamecontainers:-
nacos/nacos-server:latestresources:requests:memory:
Ym1GamIzTWdhWE1nZG1WeWVTQm5iMjlrSUhOdlpuUjNZWEpsQ2c9PQo-
NACOS_AUTH_IDENTITY_VALUEvalue:
POD_NAMESPACEvalueFrom:fieldRef:apiVersion:
MYSQL_SERVICE_HOSTvalueFrom:configMapKeyRef:name:
MYSQL_SERVICE_DB_NAMEvalueFrom:configMapKeyRef:name:
MYSQL_SERVICE_PORTvalueFrom:configMapKeyRef:name:
MYSQL_SERVICE_USERvalueFrom:configMapKeyRef:name:
MYSQL_SERVICE_PASSWORDvalueFrom:configMapKeyRef:name:
SPRING_DATASOURCE_PLATFORMvalue:
dataannotations:volume.beta.kubernetes.io/storage-class:
nfs-storageclassspec:accessModes:
http://192.168.244.151:30848/nacos
账号密码nacos/nacos#在若依源码包服务器上配置服务器环境这里是master01节点
#去https://www.oracle.com/java/technologies/downloads/下载对应版本的tar.gz包
CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-version#安装mavenmaven用于给java程序打jar包
https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz
-v#安装npm,npm用于生成前端制品即给前端生成dist目录
https://nodejs.org/dist/v14.4.0/node-v14.4.0-linux-x64.tar.xz
-v#先修改后端各个子项目的bootstrap.yml配置文件
./ruoyi-auth/src/main/resources/bootstrap.yml
./ruoyi-gateway/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml
./ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
./ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml
#修改bootstrap.yml文件中的环境配置为prodnacos
./ruoyi-auth/src/main/resources/bootstrap.yml
#修改为prod原来默认是devcloud:nacos:discovery:#
application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}#再修改前端vue.config.js配置文件
https://cli.vuejs.org/config/#devserver-proxy[process.env.VUE_APP_BASE_API]:
http://gateway-svc.default:8080,
#修改为gateway的svc地址和端口后面会创建gateway-svc这个servicechangeOrigin:
#以上打包命令执行完成会在每个子项目里面生成target命令该target命令就存放有jar包#前端项目打包
--registryhttps://registry.npmmirror.com
#执行这个因为我们就是要上限prod环境bootstrap.yml配置的环境也是prod
http://192.168.244.151:30848/nacos
#由于前面我们java项目的bootstrap.yml配置文件定义的nacos命名空间是prod所以在nacos上需要创建一个名称叫做prod的命名空间
--把每一个文件名中的dev改成prod如ruoyi-gateway-prod.yml--
点击克隆按钮完成克隆即可前面后端项目中的bootstrap.yml配置文件中的环境配置是prod所以nacos中要存在应用名称-环境配置.配置文件格式拼接起来的文件如ruoyi-gateway-prod.yml所以上面克隆的时候我们修改了文件的名称。
最后修改prod命名空间下的每个yml文件中的redismysql相关的配置相关的IP需要配置为svc域名如redis:host:
#mysql的域名nacos-headless.defaultdriver-class-name:
jdbc:mysql://mysql-svc.default:3306/ry-cloud?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8username:
http://gateway-svc.default:8080/;
#注意前端镜像tag不要写latest,否则构建出来的镜像会有问题因为dockerfile中FROM就是nginx#创建auth的k8s资源
authtemplate:metadata:labels:app:
docker-ruoyi-authimagePullPolicy:
docker-ruoyi-gatewayimagePullPolicy:
systemtemplate:metadata:labels:app:
docker-ruoyi-systemimagePullPolicy:
ruoyi-nginxtemplate:metadata:labels:app:
url为master节点IPruoyi-nginx-svc的外部端口30888。
以上我们熟悉了在java程序中nacos是如何配置的即在每一个子项目中都会有一个bootstrap.yml文件我们来仔细解读一下该文件
./ruoyi-auth/src/main/resources/bootstrap.yml
#应用名称nacos中配置文件一般也与应用名称对应profiles:#
#指定环境配置程序启动时会激活对应的环境nacos会根据这个环境来读取对应的文件
#现在环境配置是prod那么nacos中会存在应用名称-环境配置.配置文件格式拼接起来的文件如ruoyi-auth-prod.yml程序启动时就会读该文件cloud:nacos:discovery:#
#nacos的IP地址因为等下nacos使用容器启动暴露的就是宿主机8848端口username:
#指定nacos的命名空间默不写该参数默认是public命名空间#
#可以看到这个参数拼接起来就是application-prod.yml文件而这个文件是nacos上面有的-
application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
#可以看的出来激活的是prod环境读取的配置文件是ruoyi-auth.yml
c.a.c.n.c.NacosPropertySourceBuilder
c.a.c.n.c.NacosPropertySourceBuilder
[Tomcat]#前端链接后端是如何配置的答案是在前端的配置文件里面配置了网关的IP和端口
https://cli.vuejs.org/config/#devserver-proxy[process.env.VUE_APP_BASE_API]:
#gateway网关的IP和端口表示前端的请求要转发给这个网关changeOrigin:
#前端打包时到底都有哪些环境在前端目录下的package.json文件中定义了好几种配置环境如下
--registryhttps://registry.npmmirror.com
然后将dist也是可以配置的在ruoyi-ui/vue.config.js配置文件中的outputDir参数配置。
#settings.js配置文件可以定义前端显示的布局2、前端使用nginx启动
前端使用nginx启动在nginx.conf文件配置了反向代理到网关地址。
可以看到程序启动时区注册nacos并且激活的是prod环境链接的配置文件是ruoyi-auth.yml文件。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback