从零搭建AI全栈环境:Ubuntu云服务器部署Spring+Vue+MySQL全流程指南
2025.09.16 19:36浏览量:0简介:本文详细介绍在Ubuntu云服务器上部署Spring Boot后端、Vue前端与MySQL数据库的全栈开发环境搭建过程,涵盖环境准备、依赖安装、项目部署及安全优化等关键步骤,适合全栈开发者与AI应用开发者参考。
一、环境准备与服务器初始化
1.1 云服务器基础配置
选择Ubuntu 22.04 LTS作为操作系统,确保服务器配置满足以下要求:
- CPU:2核及以上(AI应用建议4核)
- 内存:4GB(开发环境)/8GB+(生产环境)
- 磁盘:50GB SSD(含20GB Swap分区)
- 带宽:5Mbps+(根据访问量调整)
通过SSH连接服务器后,执行基础安全配置:
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 创建专用用户(避免直接使用root)
sudo adduser ai-developer
sudo usermod -aG sudo ai-developer
# 配置UFW防火墙
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
1.2 开发工具链安装
安装Java开发环境(JDK 17+):
sudo apt install openjdk-17-jdk -y
java -version # 验证安装
配置Node.js环境(LTS版本):
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install nodejs -y
node -v && npm -v # 验证版本
安装MySQL 8.0数据库:
sudo apt install mysql-server -y
sudo mysql_secure_installation # 执行安全配置
二、数据库部署与优化
2.1 MySQL初始化配置
登录MySQL后执行:
CREATE DATABASE ai_platform CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'ai_admin'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON ai_platform.* TO 'ai_admin'@'localhost';
FLUSH PRIVILEGES;
优化配置参数(修改/etc/mysql/mysql.conf.d/mysqld.cnf
):
[mysqld]
innodb_buffer_pool_size = 2G # 设置为内存的50-70%
max_connections = 200
query_cache_size = 64M
2.2 数据库连接测试
使用Spring Boot项目配置示例:
# application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/ai_platform?useSSL=false&serverTimezone=UTC
username: ai_admin
password: StrongPassword123!
driver-class-name: com.mysql.cj.jdbc.Driver
三、Spring Boot后端部署
3.1 项目构建与依赖管理
使用Maven构建项目,核心依赖示例:
<dependencies>
<!-- Spring Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- AI相关库(示例) -->
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-core</artifactId>
<version>1.0.0-M2.1</version>
</dependency>
</dependencies>
3.2 生产环境部署方案
方案一:JAR包直接运行
# 构建项目
mvn clean package
# 后台运行(使用systemd)
sudo nano /etc/systemd/system/ai-backend.service
服务文件内容:
[Unit]
Description=AI Platform Backend
After=syslog.target
[Service]
User=ai-developer
ExecStart=/usr/bin/java -jar /path/to/ai-platform.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
启动服务:
sudo systemctl daemon-reload
sudo systemctl start ai-backend
sudo systemctl enable ai-backend
方案二:Docker容器化部署
Dockerfile示例:
FROM openjdk:17-jdk-slim
VOLUME /tmp
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
构建并运行:
docker build -t ai-backend .
docker run -d -p 8080:8080 --name ai-service ai-backend
四、Vue前端部署与优化
4.1 项目构建配置
修改vue.config.js
适配生产环境:
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '/ai-dashboard/' : '/',
productionSourceMap: false, // 禁用source map
configureWebpack: {
performance: {
hints: false,
maxEntrypointSize: 512000,
maxAssetSize: 512000
}
}
}
4.2 Nginx反向代理配置
安装Nginx并配置:
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/ai-frontend
配置文件内容:
server {
listen 80;
server_name your-domain.com;
root /var/www/ai-dashboard;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
启用配置并重启:
sudo ln -s /etc/nginx/sites-available/ai-frontend /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
五、全栈系统集成与测试
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("*")
.allowedHeaders("*")
.allowCredentials(true);
}
}
5.2 性能测试与调优
使用JMeter进行压力测试:
- 创建线程组(100用户,持续1分钟)
- 添加HTTP请求采样器(/api/data)
- 添加监听器查看结果
关键优化点:
- 启用G1垃圾回收器(
-XX:+UseG1GC
) - 调整Spring Boot线程池:
server:
tomcat:
threads:
max: 200
min-spare: 10
六、安全加固与运维监控
6.1 安全防护措施
启用Fail2Ban防止暴力破解:
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
配置SSL证书(Let’s Encrypt):
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com
6.2 监控系统搭建
安装Prometheus和Grafana:
# Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz
cd prometheus-*
./prometheus --config.file=prometheus.yml
# Grafana
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_10.2.0_amd64.deb
sudo dpkg -i grafana_*.deb
七、常见问题解决方案
7.1 数据库连接失败排查
检查MySQL服务状态:
sudo systemctl status mysql
验证网络连通性:
telnet localhost 3306
检查用户权限:
SELECT host, user FROM mysql.user;
7.2 前端资源加载404错误
- 检查Nginx配置中的
root
路径 - 验证Vue构建后的
dist
目录结构 - 检查浏览器开发者工具中的Network标签
通过以上步骤,您可以在Ubuntu云服务器上构建一个完整的AI全栈开发环境,涵盖从数据库部署到前后端集成的完整流程。建议定期备份数据(使用mysqldump
和项目版本控制),并持续监控系统资源使用情况。对于AI应用特有的计算需求,可考虑添加GPU支持或使用分布式计算框架如Spark进行扩展。
发表评论
登录后可评论,请前往 登录 或 注册