1.项目介绍
中州养老系统为养老院量身定制开发专业的养老管理软件产品;涵盖来访管理、入退管理、在住管理、服务管理、财务管理等功能模块,涉及从来访参观到退住办理的完整流程。

项目原型访问地址: https://codesign.qq.com/s/459277624064324 密码:FSTI
中州养老项目分为两端,一个是管理后台,另外一个是家属端
管理后台:养老院员工使用,入住、退住,给老人服务记录,AI智能体体检报告分析(百度千帆)等等
家属端:养老院的老人家属使用,查看老人信息,缴费,下订单,智能客服等等

2.项目部署架构及各节点规划
2.1 项目部署架构


2.2 各节点规划

3.各节点初始化环境
3.1 准备服务器
在阿里云申请三台ECS服务器

3.2 使用工具连接三个服务器

3.3 修改主机名字


4.MySQL数据库部署
4.1 安装MySQL
MySQL是一个常用的关系型数据库软件,可以用来存储和管理数据,比如用户信息、订单记录等。它简单高效,适合小到个人网站,大到大型应用的需求。
常见数据库产品:
Oracle Database:商用关系型数据库,性能强大,适合大型企业应用。 PostgreSQL:开源关系型数据库,功能丰富,支持高级查询和扩展。 Microsoft SQL Server :微软开发的关系型数据库,集成性强,适合 Windows 环境
安装MySQL文档地址: https://m6on85cty5.feishu.cn/docx/Bp2kdHlWAoFPFfxTQnIcoPSWnr9
4.1.1 安装My5QL官方dnf(yum)仓库:
dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
# 原因:默认的dnf仓库存在更新不及时,版本可能会老旧的情况
4.1.2 查看是否启动MySQL8.0仓库
dnf repolist enabled | grep mysql

4.1.3 安装MySQL8
dnf install -y mysql-community-server --nogpgcheck
--nogpgcheck :
跳过 GPG 检查,当安装链接是可信的,建议直接跳过,避免由于网络等跟其他原因导致无法安装
GPG (GNU Privacy Guard)是一种开源的加密工具,用于保障数据的安全性和真实性,主要用于加密、解密

4.1.4 启动MySQL相关服务
启动mysql
systemctl start mysqld
开机自动启动mysql
systemctl enable mysqld
检查mysql启动状态
systemctl status mysqld
4.1.5 获取MySQL初始root密码
安装 MySQL后,会生成一个随机的 root 密码,可以通过MySQL的启动日志来查看
日志放置位置:
/var/log/mysqld.log
查询密码命令:
grep password /var/log/mysqld.log

4.1.6 登录MySQL设置MySQL安全相关配置
mysql_secure_installation

4.1.7 测试登陆
mysql -uroot -p[密码]
可以省略密码 直接回车,然后输入密码

4.1.8 开放防火墙服务/端口号
云平台服务器本身就是关闭防火墙的,无需开放,如果需要对外网访问,可以在阿里云安全组配置
# 允许 MySQL 服务
firewall-cmd --zone=public --add-service=mysql --permanent
# 或者开放 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 让规则立即生效
firewall-cmd --reload
# 验证防火墙规则
firewall-cmd --list-all
设置远程访问的权限信息
-- 配置远程连接访问的root用户密码【直接执行即可,暂时不需要关心】:
CREATE USER 'root'@'%' IDENTIFIED BY 'Asdf1234.ok';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
执行完成后,可以直接quit退出或者使用ctrl +D 即可退出
4.2 项目基础业务数据导入
4.2.1 数据导入
1.将项目的SQL脚本上传到服务器中:/opt/zzyl/sql
2.执行以下MySQL命令,完成导入
cd /opt/zzyl/sql
mysql -uroot -pAsdf1234.ok < ry-zzyl.sql
3.校验是否导入成功
mysql -uroot -pAsdf1234.ok -e 'show databases;'

5.Redis部署
Redis是一个超级快的数据存储工具,它可以把数据保存在内存里,类似于一个高速缓存。它被广泛用于需要快速读写数据 的场景。例如:缓存数据、实时数据分析、消息队列等
5.1 安装Redis组件
安装Redis: https://m6on85cty5.feishu.cn/docx/ASWLdXucToOkAbxZfjLcoxtGnje
部署操作:
- 步骤一: 安装Redis服务
dnf install redis -y
- 步骤二: 修改Redis相关配置
vim /etc/redis/redis.conf
# 83行附件, 修改为 * -::* 任意的服务都可以连接redis服务
bind * -::*
#908行附近: 打开requirepass,设置其密码为123456 【可选】
requirepass 123456
- 步骤三: 启动redis进程
systemctl start redis
systemctl enable redis
查看状态:
systemctl status redis
- 步骤四: 测试redis服务
redis-cli 【-a 密码】
或
redis-cli 命令 进入客户端, 然后输入 auth 123456
退出客户端: quit 或 ctrl +d
步骤五:开放防火墙
- 云平台服务器本身就是关闭防火墙的, 无需开放, 如果需要对外网访问, 可以在阿里云安全组配置
firewall-cmd --add-service=redis --permanent
或
firewall-cmd --add-port=6379/tcp --add-port=6379/udp --permanent
重新加载:
firewall-cmd --reload
#查看规则信息
firewall-cmd --list-all
6.阿里云对象存储OSS
阿里云的 OSS (Object Storage Service)是一个 云端对象存储服务,简单来说,它就像是一个网上的硬盘,用来存储和管理各种文件(比如图片、视频、文档等)。你可以把它理解为一个可以随时访问、随时上传文件的网盘,不过它比普通网盘更强大,专门为大规模的数据存储和管理设计。
特点:
- 像硬盘,但在云上:你把文件存到阿里云的OSS上,就像把文件放进云端的一个“网盘”中,而这个网盘可以存很多很多数据。
- 可以随时随地访问:无论你身处哪里,只要有网络,就可以随时上传、下载、管理这些文件。
- 适合大规模数据存储:不仅可以存普通文件,还能处理海量数据,比如网站的图片、视频,甚至是备份文件等。
6.1 开通流程
步骤一:在阿里云中开通OSS服务

步骤二:进入到对象存储管理控制台

步骤三:创建存储backet桶(容器)


步骤四:进入bucket,设置为公用,方便访问

步骤五:生成访问acCessKey,用于授权访问OSS服务


6.2 项目接入阿里云OSS
步骤一:打开生产环境配置文件

将配置文件拖到桌面上进行修改
步骤二:修改配置

修改后,记得将配置文件拖拽回去
mac的话:
方法一:使用 jar 命令(推荐)
# 进入 zzyl-admin 文件夹的父目录
cd /path/to/parent/directory
# 重新打包(保留 MANIFEST.MF)
jar cfM zzyl-admin.jar -C zzyl-admin .
# 或者,如果需要指定 manifest 文件
jar cfm zzyl-admin.jar zzyl-admin/META-INF/MANIFEST.MF -C zzyl-admin .
### 方法二:使用 zip 命令
# 进入 zzyl-admin 文件夹
cd zzyl-admin
# 打包所有内容
zip -r ../zzyl-admin.jar *
# 返回上级目录
cd ..
7.百度千帆大模型部署
7.1 开通百度千帆大模型授权
项目中,主要是基于百度千帆大模型来分析用户的体检报告,故需要注册百度千帆大模型APK,从而对接百度千帆大模型。生产环境中,一般为公司生产环境的百度千帆账号
注册地址: https://qianfan.cloud.baidu.com/
实名认证: 有了账号之后,我们需要个人实名认证,不然大模型调用不了,其中实名 认证大家需要在手机端进行操作
在手机上下载一个百度智能云app,使用刚刚注册的账号进行登录,找到 我的,个人中心,可以进行实名认证操作。
注册后,赠送20元优惠卷,有效期1个月
注册登录
进入到管理平台 实名认证成功之后,我们继续在PC端来访问千帆大模型 地址: https://cloud.baidu.com/product-s/qianfan_modelbuilder
开通模型服务


7.2 项目接入百度千帆大模型
修改配置

8.后端服务部署

这个界面表示部署成功
8.1 安装JAVA程序运行环境(JDK)
安装jdk: https://m6on85cty5.feishu.cn/docx/RQSbdq1bxo0eORxav5Fcm06Jnqg
- 1- 创建放置jdk11的安装包目录
mkdir -p /export/software
- 2- 将资料中提供的jdk11的安装包上传到此目录下

- 3- 对jdk11安装包进行解压: 解压到 /opt
tar -xzf openjdk-11.0.0.2_linux-x64.tar.gz -C /opt/
cd /opt/
输入 ll 查看

- 4- 配置JDK的环境变量
vim /etc/profile
在文件的尾部添加:
# JAVA_HOME
export JAVA_HOME=/opt/jdk-11.0.0.2
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
保存退出后,执行加载操作:
source /etc/profile
校验:
java -version

8.2 上传Jar包到node2节点中
mkdir -p /opt/zzyl/backend

运行jar包:
java -jar zzyl-admin.jar
问题说明:当前启动后,会占用前台控制窗口,导致无法输入其他命令 原因:java -jar 运行jar包,本身就是直接在前台运行
解决方案: 通过 Linux提供的screen 窗口会话的方式,完成稳定挂载到后台运行
- 安装screen命令
安装第三方应用库:dnf install -y epel-release
安装screen命令:dnf install -y screen - 创建并进入新窗口持久会话
screen -S zzyl-backend - 执行运行
java -jar zzyl-admin.jar - 运行成功后,执行
ctrl + a然后d退出
其他screen操作【扩展】
- 查看screen窗口
screen -ls - 恢复
screen -r - 彻底结束会话窗口
ctrl + d
cat > /opt/docker/docker-compose.yml << 'EOF'
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql
restart: unless-stopped
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "Qiu#CHINHAE#"
volumes:
- /opt/docker/mysql/data:/var/lib/mysql
- /opt/docker/mysql/conf:/etc/mysql/conf.d
- /opt/docker/mysql/logs:/logs
redis:
image: redis:latest
container_name: redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis_data:/data
- /opt/docker/redis/conf:/usr/local/etc/redis
command: redis-server /usr/local/etc/redis/redis.conf
rabbitmq:
image: rabbitmq:management
container_name: rabbitmq
restart: unless-stopped
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: "admin"
RABBITMQ_DEFAULT_PASS: "Qiu@CHINHAE!"
volumes:
- rabbitmq_data:/var/lib/rabbitmq
- rabbitmq_conf:/etc/rabbitmq
nginx:
image: nginx:latest
container_name: nginx
restart: unless-stopped
ports:
- "80:80"
- "18080:18080"
- "18081:18081"
volumes:
- /opt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro
- /opt/docker/nginx/logs:/var/log/nginx
- /opt/financing-projects/ruoyi/frontend/dist:/usr/share/nginx/html:ro
networks:
- hmall
sentinel:
image: bladex/sentinel-dashboard:1.8.6
container_name: sentinel
restart: always
ports:
- "8858:8858"
environment:
- JAVA_OPTS=-Dsentinel.dashboard.auth.username=admin -Dsentinel.dashboard.auth.password=Qiu@CHINHAE!
volumes:
- ./data:/root/logs/csp
- ./logs:/opt/sentinel-dashboard/logs
networks:
- sentinel-net
networks:
hmall:
name: hmall
external: true
sentinel-net:
driver: bridge
volumes:
redis_data:
rabbitmq_data:
rabbitmq_conf:
EOF
9.Nginx组件部署
9.1 安装Nginx服务
Nginx(发音为“Engine-X”)是一款高性能的Web服务器和反向代理服务器。它最初是为了提供更高效的静态文件处理而设计的,但现在广泛应用于负载均衡、反向代理、缓存等多种用途。基于C语言开发,在合适的硬件上(如多核 CPU 和足够的内存),Nginx 可以处理50,000到100,000个并发连接,甚至更多。
Nginx 能做什么?
- web服务器:它可以处理并响应来自用户的 HTTP请求,展示网站内容。
- 反向代理服务器:它接收用户的请求,然后将请求转发给其他服务器来处理。这对于负载均衡和保护后端服务器很有用。
- 负载均衡:它可以把用户的请求分配到多个后端服务器上,从而减少单一服务器的负担,提高网站的稳定性和处理能力。
除此之外,还支持缓存、SSL/TLS加密等能力,是目前最常用的WEB服务器
安装nginx: https://m6on85cty5.feishu.cn/docx/ZdoFd3WSdoAZOZxQ2T0cLDPRn6f
- 1- 安装Nginx服务器
dnf install nginx -y
- 2- 启动并启用 Nginx 服务
systemctl start nginx
systemctl enable nginx
# 查看状态信息
systemctl status nginx

3- 开放防火墙
- 本地服务器
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
或者:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
# 重新加载规则信息
firewall-cmd --reload
# 查看规则信息
firewall-cmd --list-all
- 阿里云服务器
添加 80端口访问:

- 4- 测试是否可以访问
http://公网IP地址
能看到Nginx 的欢迎页面,说明 Nginx 已成功部署
Nginx的目录结构介绍
/etc/nginx/ 目录 【重要】
这是 Nginx 的 主配置目录,存放所有与 Nginx 配置相关的文件。主要包括:
nginx.conf:
Nginx 的主配置文件。这里配置了全局设置、HTTP 服务设置、加载的模块等。
conf.d/:
存放额外配置文件的目录,通常用于配置虚拟主机等。你可以在这里添加 .conf 文件来定义多个站点的配置。
mime.types:
定义了不同文件类型(MIME类型)与扩展名之间的映射,通常 Nginx 会根据这个文件来判断文件的类型。
/var/www/目录 【重要】
默认情况下,Nginx 的网站文件(例如 HTML、图片等)通常存放在这个目录下
/var/www/html/:这是 Nginx 默认的根目录。你放置的静态文件会从这个目录提供给客户端。默认情况下,index.html 会作为首页展示
/usr/share/nginx/目录
这个目录通常包含与 Nginx 程序相关的文件
/usr/share/nginx/html/ :
Nginx 默认的网页目录,通常安装时会有一个默认的 index.html 文件,用来验证 Nginx 是否成功安装。
/var/log/nginx/目录 【重要】
Nginx 会把日志文件存放在这个目录下。日志文件帮助你监控 Nginx 的运行情况,排查问题
access.log:记录所有的客户端请求,包括请求的 URL、响应状态码、请求来源等。
error.log:记录 Nginx 在运行时遇到的错误信息、警告等。
10.前端服务部署
10.1 项目部署配置
步骤一:将dist目录上传到/var/www/目录下,如果目标路径不存在,手动创建
mkdir -p /var/www/
将disk上传到此目录下
步骤二:配置Nginx的配置文件(资料中已提供完整的配置)
vim /etc/nginx/nginx.conf
#添加相关内容:
#在HTTP的目录下,添加以下三个add_header CORS 配置
add_header Access-Control-Allow-Origin*;
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE";
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization";
作用:
这几行配置用于设置 跨域资源共享(CORS),它们在 Nginx 中用来允许其他域名访问你的资源。CORS 是一种机制,允许通过浏览器发起跨域 HTTP 请求,常用于 Web 应用与不同域名的 API 交互时,解决浏览器的同源策略限制。
在server中,添加以下三行内容,删除原有的server_name 和root
client_max_body_size 60m;#限制客户端请求体的最大大小。
client_body_buffer_size 512k;#设置 Nginx用于缓冲客户端请求体的内存大小。
client_header_buffer_size 2k;#设置 Nginx 用于缓冲请求头的内存大小。
说明
这些配置项与 Nginx 处理客户端请求的请求体大小、请求头缓冲区等相关,主要用于控制 Nginx 在处理上传文件、请求体内容和请求头时的行为
在server中,继续添加以下内容,注意根据图片 确定放置位置
#处理静态页面
location / {
root /var/www/ dist;
index index.html index.htm;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
try_files $uri $uri/ /index.html;
}
#处理反向代理
location / prod-api/ {
proxy_pass http://192.168.88.102:8080/zzyl-admin/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
添加完配置后:
nginx -s reload
然后就可以访问node3的IP地址了





