AI全栈工程师进阶:Ubuntu云服务器部署Spring+Vue+MySQL全指南
2025.09.23 14:43浏览量:0简介:本文详细阐述在Ubuntu云服务器上部署Spring Boot后端、Vue前端及MySQL数据库的全流程,涵盖环境配置、依赖安装、代码部署及安全优化,助力开发者构建高效全栈应用。
AI全栈工程师进阶:Ubuntu云服务器部署Spring+Vue+MySQL全指南
在AI与全栈开发深度融合的今天,构建一个完整的Web应用不仅需要前端交互的流畅性,更依赖后端服务的稳定性与数据库的高效性。本文将以Ubuntu云服务器为环境基础,系统讲解如何部署Spring Boot(后端)、Vue.js(前端)和MySQL(数据库)的全栈架构,为开发者提供从零到一的实战指南。
一、环境准备:Ubuntu云服务器的初始化配置
1.1 服务器选择与基础设置
选择Ubuntu LTS版本(如22.04)作为操作系统,因其长期支持特性和广泛的社区资源。购买云服务器后,需完成以下基础配置:
- SSH密钥登录:禁用密码登录,使用SSH密钥提高安全性。
- 防火墙规则:开放22(SSH)、80(HTTP)、443(HTTPS)、3306(MySQL)端口,其余端口默认关闭。
- 用户管理:创建专用用户(如
devuser
),避免直接使用root操作。
1.2 依赖工具安装
通过apt
安装必要工具:
sudo apt update && sudo apt install -y \
openjdk-17-jdk maven git nginx curl wget
- Java 17:Spring Boot 3.x的最低要求。
- Maven:项目构建工具。
- Nginx:反向代理与静态资源托管。
二、MySQL数据库部署与优化
2.1 MySQL安装与配置
sudo apt install -y mysql-server
sudo mysql_secure_installation # 设置root密码、移除匿名用户等
- 创建专用用户:避免使用root连接应用。
CREATE DATABASE ai_fullstack_db;
CREATE USER 'devuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON ai_fullstack_db.* TO 'devuser'@'%';
FLUSH PRIVILEGES;
2.2 性能优化建议
- 配置文件调整:修改
/etc/mysql/mysql.conf.d/mysqld.cnf
,设置:innodb_buffer_pool_size = 1G # 根据内存调整
max_connections = 200
- 慢查询日志:启用以监控性能瓶颈。
三、Spring Boot后端部署
3.1 项目构建与依赖管理
假设项目已通过Maven管理依赖,需确保pom.xml
包含关键配置:
<properties>
<java.version>17</java.version>
<spring-boot.version>3.1.0</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
3.2 数据库连接配置
在application.properties
中设置:
spring.datasource.url=jdbc:mysql://localhost:3306/ai_fullstack_db?useSSL=false
spring.datasource.username=devuser
spring.datasource.password=StrongPassword123!
spring.jpa.hibernate.ddl-auto=update
3.3 打包与运行
mvn clean package # 生成target/your-app.jar
nohup java -jar target/your-app.jar > app.log 2>&1 &
- 进程管理:使用
systemd
服务实现开机自启(推荐)。
四、Vue.js前端部署
4.1 构建静态资源
npm install # 安装依赖
npm run build # 生成dist目录
4.2 Nginx配置反向代理
编辑/etc/nginx/sites-available/ai-fullstack
:
server {
listen 80;
server_name your-domain.com;
location / {
root /var/www/vue-app;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8080; # 转发至Spring Boot
proxy_set_header Host $host;
}
}
- 静态资源托管:将
dist
目录内容复制至/var/www/vue-app
。 - HTTPS配置:使用Let’s Encrypt免费证书:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
五、全栈集成与测试
5.1 跨域问题解决
在Spring Boot中配置CORS:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("https://your-domain.com")
.allowedMethods("*");
}
}
5.2 端到端测试
- API测试:使用
curl
或Postman验证/api/endpoint
。 - 前端访问:通过浏览器访问
https://your-domain.com
,检查数据交互是否正常。
六、安全与维护建议
6.1 安全加固
- 定期更新:
sudo apt update && sudo apt upgrade
。 - 备份策略:每日自动备份MySQL数据库(
mysqldump
)。 - 日志监控:使用
logrotate
管理日志文件大小。
6.2 性能监控
- Prometheus + Grafana:监控JVM指标、Nginx请求量等。
- Spring Boot Actuator:暴露健康检查端点(需配置安全)。
七、常见问题与解决方案
7.1 MySQL连接失败
- 错误现象:
Communications link failure
。 - 排查步骤:
- 检查MySQL服务状态:
sudo systemctl status mysql
。 - 验证用户权限:
SELECT host, user FROM mysql.user;
。 - 检查防火墙规则:
sudo ufw status
。
- 检查MySQL服务状态:
7.2 Vue前端资源404
- 原因:Nginx未正确配置
try_files
。 - 解决:确保
location /
块包含try_files $uri $uri/ /index.html;
。
八、扩展与优化方向
8.1 容器化部署
使用Docker简化环境配置:
# Spring Boot Dockerfile示例
FROM openjdk:17-jdk-slim
COPY target/your-app.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
8.2 CI/CD流水线
结合GitHub Actions或Jenkins实现自动化构建与部署。
结语
通过本文的步骤,开发者可在Ubuntu云服务器上快速搭建一个完整的Spring Boot + Vue.js + MySQL全栈应用。从环境初始化到安全优化,每个环节均需严谨配置,以确保系统的稳定性与可扩展性。未来,随着AI技术的深入应用,全栈架构的自动化运维与智能监控将成为新的发展方向。
发表评论
登录后可评论,请前往 登录 或 注册