Feelings

无封面

2025-08-19
编辑

love项目本地打包部署(Java项目)及遇到问题

结合你的项目(前后端分离的 Spring Boot + Vue 项目,依赖 MySQL 和 Redis),以下是在阿里云服务器上的完整部署步骤,基于 CentOS 7/8 系统(阿里云最常用,兼容性好):

一、服务器初始化与环境准备

1. 服务器登录与安全配置

  • 登录服务器
    通过阿里云控制台获取服务器公网 IP,用 SSH 工具连接(推荐 Xshell 或终端命令):
    bash ssh root@你的公网IP # 输入购买时设置的密码,或使用密钥登录

  • 开放必要端口
    登录阿里云控制台 → 找到你的 ECS 实例 → 安全组配置 → 入方向添加规则,开放以下端口:

  • 80(HTTP 访问)、443(HTTPS,可选)
  • 3306(MySQL,仅允许本地或指定 IP 访问,增强安全)
  • 6379(Redis,同上,不建议直接开放公网)
  • 后端项目端口(如 8080,根据你的配置调整)
  • 22(SSH 登录,默认已开放)

  • 更新系统与安装基础工具
    ```bash # 更新系统 yum update -y

# 安装常用工具(上传文件、解压等) yum install -y lrzsz unzip zip wget ```

2. 安装依赖服务(MySQL、Redis、JDK)

(1)安装 JDK 1.8(后端运行必需)
# 检查是否已安装
java -version

# 未安装则执行(以 JDK 1.8 为例)
yum install -y java-1.8.0-openjdk-devel

# 验证安装(出现版本信息则成功)
java -version
(2)安装 MySQL 8.0(数据库)
# 下载 MySQL 源
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
rpm -ivh mysql80-community-release-el7-7.noarch.rpm

# 安装 MySQL
yum install -y mysql-community-server

# 启动 MySQL 并设置开机自启
systemctl start mysqld
systemctl enable mysqld

# 获取初始密码(用于首次登录)
grep "password" /var/log/mysqld.log

# 登录 MySQL(输入初始密码)
mysql -u root -p

# 重置密码(MySQL 8.0 密码需包含大小写、数字、符号)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
# 允许远程连接(开发环境,生产环境建议限制 IP)
use mysql;
update user set host = '%' where user = 'root';
flush privileges;
exit;
(3)安装 Redis(缓存)
# 安装 Redis
yum install -y redis

# 启动 Redis 并设置开机自启
systemctl start redis
systemctl enable redis

# (可选)配置 Redis 密码(增强安全)
vi /etc/redis.conf
# 找到 # requirepass foobared,去掉注释并修改为:
requirepass 你的Redis密码
# 重启 Redis 生效
systemctl restart redis

3. 安装 Nginx(部署前端 + 反向代理)

# 安装 Nginx
yum install -y nginx

# 启动 Nginx 并设置开机自启
systemctl start nginx
systemctl enable nginx

二、后端项目部署(Spring Boot)

1. 准备后端包

  • 在本地打包后端项目(确保 application-prod.yml 配置正确,如数据库、Redis 地址改为服务器公网 IP 或 localhost,密码与服务器一致):
    bash # 本地执行(之前已成功打包的话,直接用 target 下的 jar 包) mvn clean package -P prod
  • 将打包好的 xxx.jar(如 love-station.jar)上传到服务器,建议放在 /usr/local/project/backend 目录:
    bash # 服务器上创建目录 mkdir -p /usr/local/project/backend # 用 rz 命令上传文件(在 Xshell 中执行,选择本地 jar 包) rz

2. 启动后端服务(后台运行 + 开机自启)

# 进入后端目录
cd /usr/local/project/backend

# 临时启动(测试是否正常)
java -jar love-station.jar --spring.profiles.active=prod

# 若启动成功(无报错),按 Ctrl+C 停止,配置为系统服务实现后台运行
vi /etc/systemd/system/backend.service

在文件中添加以下内容(根据实际 jar 包名修改):

[Unit]
Description=Love Station Backend
After=network.target mysqld.service redis.service

[Service]
User=root
WorkingDirectory=/usr/local/project/backend
ExecStart=/usr/bin/java -jar love-station.jar --spring.profiles.active=prod
SuccessExitStatus=143
Restart=always
RestartSec=5

[Unit]
WantedBy=multi-user.target

保存后启动服务:

systemctl daemon-reload  # 刷新配置
systemctl start backend  # 启动服务
systemctl enable backend  # 开机自启
systemctl status backend  # 查看状态(显示 active 则成功)

三、前端项目部署(Vue)

1. 准备前端静态文件

  • 本地打包前端项目(确保接口请求地址指向服务器后端,如 baseURL: "http://你的公网IP:8080" 或通过 Nginx 代理):
    bash # 本地执行(解决过加密算法问题后) npm run build:prod
  • 打包后生成 dist 文件夹,将其压缩为 dist.zip 上传到服务器 /usr/local/project/frontend 目录:
    bash # 服务器上创建目录 mkdir -p /usr/local/project/frontend # 上传 dist.zip 后解压 unzip dist.zip

2. 配置 Nginx 指向前端并代理后端接口

# 编辑 Nginx 配置文件
vi /etc/nginx/conf.d/love-station.conf

添加以下配置(替换 你的公网IP 为实际 IP):

server {
    listen 80;
    server_name 你的公网IP;  # 若有域名,可替换为域名

    # 前端静态文件目录
    root /usr/local/project/frontend/dist;
    index index.html;

    # 处理 Vue 路由刷新404问题
    location / {
        try_files $uri $uri/ /index.html;
    }

    # 反向代理后端接口(解决跨域)
    location /api {
        proxy_pass http://127.0.0.1:8080;  # 后端服务地址(服务器本地+端口)
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

保存后重启 Nginx 生效:

nginx -t  # 检查配置是否有误
systemctl restart nginx

四、初始化数据库

  1. 在服务器上登录 MySQL,创建项目数据库(与本地 application-prod.yml 中的 lover_admin 一致):
    bash mysql -u root -p create database lover_admin character set utf8mb4; exit;
  2. 将本地的数据库脚本(如 lover_admin.sql)上传到服务器,导入数据:
    bash # 上传脚本后执行 mysql -u root -p lover_admin < lover_admin.sql

五、测试访问

  1. 打开浏览器,访问 http://你的公网IP,若能看到前端页面,且接口调用正常(如登录、加载数据),则部署成功。
  2. 若有问题,检查各服务状态:
  3. 后端日志:tail -f /usr/local/project/backend/logs/xxx.log(根据项目日志配置)
  4. Nginx 日志:tail -f /var/log/nginx/error.log
  5. MySQL 连接:mysql -u root -p 验证密码是否正确

关键注意事项

  1. 安全加固
  2. MySQL 和 Redis 避免直接开放公网访问,可通过服务器防火墙(firewalld)限制端口仅允许本地访问。
  3. 定期备份数据库:mysqldump -u root -p lover_admin > backup.sql

  4. 性能优化

  5. 后端 JVM 参数调优:在 backend.serviceExecStart 中添加 -Xms512m -Xmx1024m(根据服务器内存调整)。
  6. Nginx 开启 gzip 压缩,提高前端加载速度。

  7. 后续维护

  8. 更新后端:替换 jar 包后执行 systemctl restart backend
  9. 更新前端:替换 dist 目录文件后执行 nginx -s reload

按以上步骤操作,你的项目就能在阿里云服务器上稳定运行了。如果遇到具体报错(如接口 502、数据库连接失败),可针对性检查配置或日志。


分割线 遇到问题


遇到问题: 1.因为数据库lover-admin没有创建导致出现运行jar时出错。
2.因为数据库lover-admin创建成lover-admin导致出现运行jar时出错。
3.因为后端yml文件中腾讯位置信息填写时有严格的缩进和每个关键次后面要空一个(如key: 123key:和123之间有个空格)导致出现运行jar时出错。
4.配置的有阿里云oss存储桶,需要重启一下服务器来应用。
5.项目文件一般放在/var/www/里面 6.前端文件夹config有一些全局变量就比如说baseurl的拼接,这里要修改为实际的网站地址,而不是localhost

评论区

昵称最多15个字符,包含汉字、字母、数字等

暂无评论,快来发表第一条评论吧~