springboot + vue 怎么部署到服务器上
·
一 准备工作
- 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"}'
完成
更多推荐


所有评论(0)