一 准备工作

  • ubuntu服务器
  • MySQL
    安装命令
# 可先进行更新
sudo apt update

# 安装
sudo apt install mysql-server

# 启动服务 
sudo systemctl start mysql

# 设置开机自启 
sudo systemctl enable mysql 

# 检查服务状态 
sudo systemctl status mysql

# 运行安全配置脚本​
sudo mysql_secure_installation

# 更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 
FLUSH PRIVILEGES;

docker也可以拉取镜像

注意

# 检查root用户的认证插件

SELECT user, host, plugin, authentication_string FROM mysql.user WHERE user = 'root';


# 修改root用户的认证方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

FLUSH PRIVILEGES;

注意!!!
如果显示的plugin是 auth_socket 或其他插件,需要改为 mysql_native_password:auth_socket 插件只允许系统用户通过socket连接,而不允许密码认证

  • Nginx
     安装命令
# 安装
sudo apt install nginx -y
 
# 启动服务
sudo systemctl start nginx

#开机自启
sudo systemctl enable nginx

# 验证安装
sudo systemctl status nginx
  • JDK 22
    安装命令
# 添加 OpenJDK PPA(可以到jdk22)
sudo add-apt-repository ppa:openjdk-r/ppa 

sudo apt update 

# 安装 OpenJDK 22 
sudo apt install openjdk-22-jdk

开放端口
mysql 3306
springboot 8080
vue 5173(使用vite构建)
22 远程连接 80/443 服务器应该自带

二 打包

需要修改文件内容

前端(dist文件夹)

npm run build 

后端(jar包)

mvn clean package

上传指定位置 我的命名 /var/www/homework/

三 部署

前端

​(1) 创建新的站点配置文件​

sudo nano /etc/nginx/sites-available/your-project

​(2) 配置 Nginx 代理 Vue 前端​

nginx 配置
参考,需要根据实际情况修改

server {  
    listen 80;  
    server_name ; #ip 或 域名  
  
    # Vue 前端配置  
    root /var/www/homework/frontend/dist;  
    index index.html;  
  
    location / {  
        try_files $uri $uri/ /index.html;  
    }  
  
    # 正确的代理配置  
    location /api/ {  
        proxy_pass http://localhost:8080/api/;  # 注意这里要加上/api/  
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header X-Forwarded-Proto $scheme;  
    }  
  
    gzip on;  
    gzip_types text/plain text/css application/json application/javascript text/xml;  
}

Nginx 的主要配置文件位于 /etc/nginx/nginx.conf,但通常我们不会直接修改它,而是在 /etc/nginx/sites-available/下创建新的配置文件。

​(3) 启用站点配置​

sudo ln -s /etc/nginx/sites-available/your-project /etc/nginx/sites-enabled/

(4) 测试 Nginx 配置​

sudo nginx -t

如果显示 syntax is ok和 test is successful,说明配置正确。

​(5) 重启 Nginx​

sudo systemctl restart nginx

后端

创建 Systemd 服务(推荐)​

(1) 创建服务文件​

sudo nano /etc/systemd/system/springboot-homework.service

配置文件

[Unit]  
Description=Spring Boot Homework Backend  
After=syslog.target network.target  
  
[Service]  
User=root  
WorkingDirectory=/var/www/homework/backend/  
ExecStart=/usr/bin/java -jar /var/www/homework/backend/backend-0.0.1-SNAPSHOT.jar   
SuccessExitStatus=143  
  
# 生产环境建议添加 JVM 参数(示例)  
# Environment="JAVA_OPTS=-Xms512m -Xmx1024m -Dspring.profiles.active=prod"  
# ExecStart=/usr/bin/java $JAVA_OPTS -jar your-app.jar  
  
Restart=always  
RestartSec=3  
  
[Install]  
WantedBy=multi-user.target

其他方式也可以

(2) 启用并启动服务​

sudo systemctl daemon-reload
sudo systemctl enable springboot-homework
sudo systemctl start springboot-homework

(3) 检查状态​

sudo systemctl status springboot-homework

常输出应显示 active (running)

测试一下(每个人不一样)

# 测试注册API

curl -X POST http://localhost:8080/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{"username":"testuser789","password":"123456","confirmPassword":"123456","email":"test789@example.com"}'

完成

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐