从零搭建AI全栈环境:Ubuntu云服务器部署Spring+Vue+MySQL全流程指南
2025.09.16 19:06浏览量:4简介:本文详细介绍在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-developersudo usermod -aG sudo ai-developer# 配置UFW防火墙sudo ufw allow 22/tcp # SSHsudo ufw allow 80/tcp # HTTPsudo ufw allow 443/tcp # HTTPSsudo ufw enable
1.2 开发工具链安装
安装Java开发环境(JDK 17+):
sudo apt install openjdk-17-jdk -yjava -version # 验证安装
配置Node.js环境(LTS版本):
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -sudo apt install nodejs -ynode -v && npm -v # 验证版本
安装MySQL 8.0数据库:
sudo apt install mysql-server -ysudo 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 = 200query_cache_size = 64M
2.2 数据库连接测试
使用Spring Boot项目配置示例:
# application.ymlspring:datasource:url: jdbc:mysql://localhost:3306/ai_platform?useSSL=false&serverTimezone=UTCusername: ai_adminpassword: 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 BackendAfter=syslog.target[Service]User=ai-developerExecStart=/usr/bin/java -jar /path/to/ai-platform.jarSuccessExitStatus=143[Install]WantedBy=multi-user.target
启动服务:
sudo systemctl daemon-reloadsudo systemctl start ai-backendsudo systemctl enable ai-backend
方案二:Docker容器化部署
Dockerfile示例:
FROM openjdk:17-jdk-slimVOLUME /tmpARG JAR_FILE=target/*.jarCOPY ${JAR_FILE} app.jarENTRYPOINT ["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 mapconfigureWebpack: {performance: {hints: false,maxEntrypointSize: 512000,maxAssetSize: 512000}}}
4.2 Nginx反向代理配置
安装Nginx并配置:
sudo apt install nginx -ysudo 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-enabledsudo nginx -tsudo systemctl restart nginx
五、全栈系统集成与测试
5.1 跨域问题解决方案
在Spring Boot中配置CORS:
@Configurationpublic class WebConfig implements WebMvcConfigurer {@Overridepublic 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: 200min-spare: 10
六、安全加固与运维监控
6.1 安全防护措施
启用Fail2Ban防止暴力破解:
sudo apt install fail2ban -ysudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
配置SSL证书(Let’s Encrypt):
sudo apt install certbot python3-certbot-nginx -ysudo certbot --nginx -d your-domain.com
6.2 监控系统搭建
安装Prometheus和Grafana:
# Prometheuswget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gztar xvfz prometheus-*.tar.gzcd prometheus-*./prometheus --config.file=prometheus.yml# Grafanasudo apt-get install -y adduser libfontconfig1wget https://dl.grafana.com/oss/release/grafana_10.2.0_amd64.debsudo 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进行扩展。

发表评论
登录后可评论,请前往 登录 或 注册