5.项目部署上线

1.项目介绍

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

CleanShot 2025-10-14 at 14.08.54@2x.png

项目原型访问地址: https://codesign.qq.com/s/459277624064324 密码:FSTI

中州养老项目分为两端,一个是管理后台,另外一个是家属端

管理后台:养老院员工使用,入住、退住,给老人服务记录,AI智能体体检报告分析(百度千帆)等等

家属端:养老院的老人家属使用,查看老人信息,缴费,下订单,智能客服等等

CleanShot 2025-10-14 at 14.10.01@2x.png

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

2.1 项目部署架构

CleanShot 2025-10-14 at 14.11.52@2x.png

CleanShot 2025-10-14 at 14.12.15@2x.png

2.2 各节点规划

CleanShot 2025-10-14 at 14.12.42@2x.png

3.各节点初始化环境

3.1 准备服务器

在阿里云申请三台ECS服务器

CleanShot 2025-10-14 at 15.05.09@2x.png

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

CleanShot 2025-10-14 at 15.08.45@2x.png

3.3 修改主机名字

CleanShot 2025-10-14 at 15.16.51@2x.png

CleanShot 2025-10-14 at 15.17.15@2x.png

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
CleanShot 2025-10-14 at 15.34.54@2x.png

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

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
CleanShot 2025-10-14 at 15.44.48@2x.png

4.1.6 登录MySQL设置MySQL安全相关配置
mysql_secure_installation
CleanShot 2025-10-14 at 15.50.50@2x.png

4.1.7 测试登陆
mysql -uroot -p[密码] 

可以省略密码 直接回车,然后输入密码

CleanShot 2025-10-14 at 15.58.22@2x.png

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;'
CleanShot 2025-10-14 at 16.10.22@2x.png

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服务

CleanShot 2025-10-14 at 16.26.19@2x.png

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

CleanShot 2025-10-14 at 16.27.41@2x.png

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

CleanShot 2025-10-14 at 16.28.23@2x.png

CleanShot 2025-10-14 at 16.30.59@2x.png

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

CleanShot 2025-10-14 at 16.31.32@2x.png

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

CleanShot 2025-10-14 at 16.33.27@2x.png

CleanShot 2025-10-14 at 16.34.28@2x.png

6.2 项目接入阿里云OSS

步骤一:打开生产环境配置文件

CleanShot 2025-10-14 at 16.38.42@2x.png

将配置文件拖到桌面上进行修改

步骤二:修改配置

CleanShot 2025-10-14 at 16.39.07@2x.png

修改后,记得将配置文件拖拽回去

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

开通模型服务

CleanShot 2025-10-14 at 17.00.27@2x.png

CleanShot 2025-10-14 at 17.01.42@2x.png

7.2 项目接入百度千帆大模型

修改配置

CleanShot 2025-10-14 at 17.06.27@2x.png

8.后端服务部署

CleanShot 2025-10-14 at 17.12.09@2x.png

这个界面表示部署成功

8.1 安装JAVA程序运行环境(JDK)

安装jdk: https://m6on85cty5.feishu.cn/docx/RQSbdq1bxo0eORxav5Fcm06Jnqg

  • 1- 创建放置jdk11的安装包目录
mkdir -p /export/software
  • 2- 将资料中提供的jdk11的安装包上传到此目录下
CleanShot 2025-10-14 at 17.16.21@2x.png

  • 3- 对jdk11安装包进行解压: 解压到 /opt
tar -xzf openjdk-11.0.0.2_linux-x64.tar.gz -C /opt/

cd /opt/

输入 ll 查看
CleanShot 2025-10-14 at 17.17.14@2x.png

  • 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
CleanShot 2025-10-14 at 17.18.35@2x.png

8.2 上传Jar包到node2节点中

mkdir -p /opt/zzyl/backend
CleanShot 2025-10-14 at 17.20.26@2x.png

运行jar包:

java -jar zzyl-admin.jar

问题说明:当前启动后,会占用前台控制窗口,导致无法输入其他命令 原因:java -jar 运行jar包,本身就是直接在前台运行

解决方案: 通过 Linux提供的screen 窗口会话的方式,完成稳定挂载到后台运行

  1. 安装screen命令
    安装第三方应用库:dnf install -y epel-release
    安装screen命令: dnf install -y screen
  2. 创建并进入新窗口持久会话
    screen -S zzyl-backend
  3. 执行运行
    java -jar zzyl-admin.jar
  4. 运行成功后,执行 ctrl + a 然后d退出

其他screen操作【扩展】

  1. 查看screen窗口
    screen -ls
  2. 恢复
    screen -r
  3. 彻底结束会话窗口
    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 能做什么?

  1. web服务器:它可以处理并响应来自用户的 HTTP请求,展示网站内容。
  2. 反向代理服务器:它接收用户的请求,然后将请求转发给其他服务器来处理。这对于负载均衡和保护后端服务器很有用。
  3. 负载均衡:它可以把用户的请求分配到多个后端服务器上,从而减少单一服务器的负担,提高网站的稳定性和处理能力。

除此之外,还支持缓存、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
CleanShot 2025-10-14 at 17.57.00@2x.png

  • 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端口访问:    CleanShot 2025-10-14 at 17.59.47@2x.png

  • 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地址了

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇