AI全栈开发实战:Ubuntu云服务器部署Spring+Vue+MySQL指南
2025.09.16 19:36浏览量:37简介:本文详细阐述在Ubuntu云服务器上部署Spring Boot后端、Vue前端与MySQL数据库的全栈开发流程,涵盖环境配置、依赖安装、项目构建及安全优化等关键步骤,为AI全栈开发者提供一站式技术指南。
一、环境准备与服务器初始化
1.1 云服务器选择与基础配置
推荐使用Ubuntu 22.04 LTS作为操作系统,其长期支持特性可保障环境稳定性。服务器配置建议:2核4G内存起步,带宽根据实际访问量选择(初期5Mbps足够)。创建实例时需开放22(SSH)、80(HTTP)、443(HTTPS)、3306(MySQL)等关键端口。
1.2 基础环境搭建
# 更新系统软件包sudo apt update && sudo apt upgrade -y# 安装必要工具sudo apt install -y git curl wget unzip# 配置SSH安全(禁用root登录,修改默认端口)sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_configsudo sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_configsudo systemctl restart sshd
二、MySQL数据库部署与优化
2.1 数据库安装与配置
# 安装MySQL 8.0sudo apt install -y mysql-server# 安全配置(设置root密码,移除匿名用户)sudo mysql_secure_installation# 创建专用用户与数据库sudo mysql -u root -p <<EOFCREATE DATABASE ai_platform CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'ai_user'@'%' IDENTIFIED BY 'SecurePassword123!';GRANT ALL PRIVILEGES ON ai_platform.* TO 'ai_user'@'%';FLUSH PRIVILEGES;EOF
2.2 性能优化配置
修改/etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld]innodb_buffer_pool_size = 1G # 占内存50%-70%max_connections = 200query_cache_size = 64M
三、Spring Boot后端部署
3.1 Java环境配置
# 安装OpenJDK 17sudo apt install -y openjdk-17-jdk# 配置环境变量echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrcecho 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrcsource ~/.bashrc
3.2 项目构建与部署
# 创建部署目录sudo mkdir -p /opt/ai-backendsudo chown -R $USER:$USER /opt/ai-backend# 使用Maven构建(假设项目已存在)cd /path/to/spring-projectmvn clean package -DskipTests# 创建系统服务(使用systemd)sudo bash -c 'cat > /etc/systemd/system/ai-backend.service <<EOF[Unit]Description=AI Platform BackendAfter=syslog.target network.target mysql.service[Service]User=$USERWorkingDirectory=/opt/ai-backendExecStart=/usr/bin/java -jar /path/to/project/target/app.jarSuccessExitStatus=143Restart=always[Install]WantedBy=multi-user.targetEOF'# 启动服务sudo systemctl daemon-reloadsudo systemctl start ai-backendsudo systemctl enable ai-backend
四、Vue前端部署方案
4.1 Node.js环境配置
# 使用nvm安装最新LTS版本curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bashsource ~/.bashrcnvm install --lts# 安装Vue CLInpm install -g @vue/cli
4.2 生产环境构建
# 进入前端项目目录cd /path/to/vue-project# 安装依赖npm install# 构建生产版本npm run build# 配置Nginx反向代理sudo bash -c 'cat > /etc/nginx/sites-available/ai-frontend <<EOFserver {listen 80;server_name your-domain.com;location / {root /path/to/vue-project/dist;index index.html;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;}}EOF'sudo ln -s /etc/nginx/sites-available/ai-frontend /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginx
五、安全加固与性能优化
5.1 防火墙配置
# 安装ufw并配置规则sudo apt install -y ufwsudo ufw allow 2222/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw enable
5.2 SSL证书配置(Let’s Encrypt)
# 安装Certbotsudo apt install -y certbot python3-certbot-nginx# 获取证书(需提前配置好域名解析)sudo certbot --nginx -d your-domain.com# 设置自动续期sudo certbot renew --dry-run
5.3 监控体系搭建
# 安装Prometheus Node Exportersudo useradd --no-create-home --shell /bin/false node_exporterwget https://github.com/prometheus/node_exporter/releases/download/v*/node_exporter-*.*-amd64.tar.gztar xvfz node_exporter-*.*-amd64.tar.gzsudo mv node_exporter-*.*-amd64 /usr/local/bin/node_exporter# 创建服务文件sudo bash -c 'cat > /etc/systemd/system/node_exporter.service <<EOF[Unit]Description=Node ExporterAfter=network.target[Service]User=node_exporterGroup=node_exporterType=simpleExecStart=/usr/local/bin/node_exporter[Install]WantedBy=multi-user.targetEOF'sudo systemctl daemon-reloadsudo systemctl start node_exportersudo systemctl enable node_exporter
六、持续集成与自动化部署
6.1 GitHub Actions配置示例
name: AI Platform CI/CDon:push:branches: [ main ]jobs:build-and-deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v3- name: Set up JDKuses: actions/setup-java@v3with:java-version: '17'distribution: 'temurin'- name: Build Spring Bootrun: |cd backendmvn clean package -DskipTests- name: Build Vuerun: |cd frontendnpm installnpm run build- name: Deploy to Serveruses: appleboy/ssh-action@masterwith:host: ${{ secrets.SERVER_IP }}username: ${{ secrets.SERVER_USER }}key: ${{ secrets.SSH_PRIVATE_KEY }}port: 2222script: |# 停止旧服务sudo systemctl stop ai-backend# 更新应用scp -P 2222 -r backend/target/*.jar ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:/opt/ai-backend/scp -P 2222 -r frontend/dist/* ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:/var/www/html/# 重启服务sudo systemctl start ai-backend
七、常见问题解决方案
7.1 数据库连接问题排查
- 检查MySQL服务状态:
sudo systemctl status mysql - 验证网络连通性:
telnet localhost 3306 - 检查用户权限:
SELECT host, user FROM mysql.user;
7.2 前端路由404问题
在Nginx配置中确保包含:
location / {try_files $uri $uri/ /index.html;}
7.3 内存不足优化
- 调整JVM参数:
-Xms512m -Xmx1024m - 优化MySQL配置:减少
innodb_buffer_pool_size - 监控内存使用:
free -h和top
八、进阶优化建议
本指南完整覆盖了从环境搭建到生产部署的全流程,特别针对AI全栈开发特点,强调了数据库性能优化、前后端分离架构实现等关键环节。实际部署时建议先在测试环境验证所有配置,再逐步迁移到生产环境。

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