环境准备

阿里云服务器推荐选择 CentOS 7.x 或 Ubuntu 20.04 LTS 操作系统,配置至少 2核4G 的实例。通过 SSH 连接服务器后,安装基础工具包:

yum update -y && yum install -y git wget curl   # CentOS
apt update -y && apt install -y git wget curl   # Ubuntu

前端部署

Vue3 项目需先进行生产环境构建。在本地开发环境执行:

npm run build

生成的 dist 文件夹通过 SFTP 上传至服务器 /var/www 目录。安装 Nginx 作为前端服务器:

yum install nginx -y   # CentOS
apt install nginx -y   # Ubuntu

配置 Nginx 指向前端资源:

server {
    listen 80;
    server_name your_domain.com;
    root /var/www/dist;
    index index.html;
    
    location / {
        try_files $uri $uri/ /index.html;
    }
}

后端部署

安装 JDK 17 和 Maven:

yum install -y java-17-openjdk-devel maven   # CentOS
apt install -y openjdk-17-jdk maven          # Ubuntu

将 Spring Boot 项目打包后的 JAR 文件上传至 /opt/app。创建 Systemd 服务管理:

[Unit]
Description=Spring Boot App
After=syslog.target

[Service]
User=root
ExecStart=/usr/bin/java -jar /opt/app/your-app.jar
Restart=always

[Install]
WantedBy=multi-user.target

数据库配置

安装 MySQL 8.0:

wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
yum install -y mysql-community-server

初始化后创建数据库用户:

CREATE DATABASE app_db;
CREATE USER 'app_user'@'%' IDENTIFIED BY 'SecureP@ss123';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'%';

安全配置

  1. 防火墙放行必要端口:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

  1. 配置 SSL 证书(以 Let's Encrypt 为例):
certbot --nginx -d your_domain.com

  1. 禁用 root 远程登录,修改 SSH 端口:
Port 2222
PermitRootLogin no

持续集成

在项目根目录添加 GitHub Actions 配置 .github/workflows/deploy.yml

name: CI/CD Pipeline

on: [push]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: npm install && npm run build
      - uses: easingthemes/ssh-deploy@main
        with:
          server: ${{ secrets.SERVER_IP }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_KEY }}
          source: "dist/"
          target: "/var/www"

监控维护

安装 PM2 管理 Node 进程(如需 SSR):

npm install pm2 -g
pm2 start npm --name "ssr-server" -- run start

配置日志轮转:

/var/log/nginx/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        /etc/init.d/nginx reload >/dev/null
    endscript
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐