适合新手入门,课程设计、毕设、个人项目演示场景全覆盖

📌 写在前面

在学习Web开发的过程中,很多开发者都会遇到这样一个问题:本地项目跑得好好的,导师或面试官却看不到。无论是课程设计答辩、毕业设计展示,还是面试作品分享,都需要一个稳定的公网访问环境。最近阿里云的认证机制做了一些调整,新一代部署方案更加便捷,今天就来分享一套完整的云端部署流程,帮助大家把自己的项目真正“放”到互联网上。

阿里云服务器部署网站主要有三种主流路径:新手优先选轻量应用镜像一键部署或宝塔面板可视化部署,开发者可以选择手动环境部署,全程围绕“准备资源→配置环境→部署程序→域名解析→备案上线”推进。


一、部署方案全景对比

在开始部署之前,先弄清楚有哪些路可以走,选最合适的那一条。

方案 适用场景 优势 上手难度 预估成本/月
ECS手动部署 需要完全掌控服务器环境、自定义程度高 灵活可控、可定制 ⭐⭐⭐⭐ ≈ 50-100元
轻量应用镜像 WordPress等CMS快速建站 5分钟上线、0配置 ≈ 40-60元
宝塔面板 多站点管理、不想敲命令 可视化界面、省心 ⭐⭐ ≈ 50-80元
云效CI/CD 项目迭代频繁、需要自动化部署 全自动流水线 ⭐⭐⭐ ≈ 50元+
函数计算FC 无状态API、事件驱动场景 按量付费、免运维 ⭐⭐ 按调用计费
OSS托管 纯静态网站/前端项目 超低成本、高可用 ≈ 0.1-5元
ACK Serverless 容器化应用、微服务架构 免节点运维 ⭐⭐⭐⭐ 约0.05美元/0.5h

💡 选型建议:

  • 课程设计/毕设/个人项目展示 → 选ECS 2核2G配置最稳妥,覆盖前后端分离场景

  • 只想快速建个个人博客 → 轻量应用镜像,5分钟搞定

  • 正儿八经做项目开发,要频繁更新 → 云效CI/CD流水线+ECS,解放双手

  • 纯静态网站(Vue/React打包后) → OSS托管,成本低到几乎可以忽略


二、ECS 手动部署全流程(最通用方案)

以 Spring Boot + Vue 前后端分离项目为例,演示完整的部署流程。本教程的技术栈为:后端 Spring Boot 2.7 + JDK 11,前端 Vue 3 + Nginx,数据库 MySQL 8.0(RDS或ECS自建均可),云平台使用阿里云ECS(Ubuntu 22.04)。

2.1 前置准备

部署之前先做好三件事,缺一不可:

  • 服务器:推荐2核2G起步,系统盘40G ESSD,操作系统预装 Alibaba Cloud Linux 3 / Ubuntu 22.04 / CentOS 7.9

  • 域名:购买 .com/.cn 等域名(国内服务器需要备案),测试阶段可以先用公网IP访问

  • 备案前提:国内服务器需要包年包月≥3个月,获取公网IP,地域选择内地

🎓 学生福利:阿里云有校园计划,完成学生认证后可以享受专属折扣。2核4G的ECS实例加上带宽,月度成本可以控制在50元以内。搜索“阿里云学生机”即可找到入口。

2.2 ECS实例创建

  1. 登录阿里云控制台,进入ECS控制台

  2. 点击“创建实例”,根据业务需求选择实例规格族,小型网站选基础配置即可

  3. 网络选择默认VPC即可,带宽建议1-3M按量付费

  4. 设置root密码(或创建密钥对),一定要记得保存

  5. 根据实际需求填写标签,确认配置后点击“确认下单”

⚠️ 注意:不同类型和规模的网站需要的ECS配置不同,请确认网站规模与访问人数后再做选择,后续也可以按需升降配。

2.3 安全组配置(核心避坑点)

安全组相当于云服务器的“防火墙”,很多初学者网站访问不了,十有八九是安全组没配好。登录ECS控制台 → 安全组 → 入方向规则,开放以下端口:

端口 用途 优先级
22 SSH远程连接(建议限制源IP,仅允许自己的IP访问) 1
80 HTTP访问 1
443 HTTPS访问(如有SSL证书) 1
3306 MySQL(建议仅内网访问,不开放公网) 2
8888 宝塔面板(如果用的话) 2
8080 Spring Boot等默认端口(建议通过Nginx代理,不直接开放) 2

💡 小白建议:SSH的22端口建议“授权对象”填你自己的IP,防止被恶意扫描。80和443端口需要开通“0.0.0.0/0”才能被公网访问。

2.4 远程连接服务器

  • 轻量应用服务器:控制台直接“远程连接”一键登录

  • ECS:用 Xshell、PuTTY 或者本地终端,输入:ssh root@你的服务器公网IP,然后输入密码即可进入

2.5 项目打包与上传

后端打包(Spring Boot)

在本地项目根目录执行Maven打包:

bash

mvn clean package -DskipTests

生成的jar包位于 target/your-application-0.0.1-SNAPSHOT.jar

前端构建(Vue)

bash

cd frontend
npm install
# 修改生产环境API地址,在 .env.production 或 vue.config.js 中配置
VITE_API_BASE_URL=http://你的公网IP:8080/api
npm run build

生成的静态文件位于 dist/ 目录

上传至ECS

使用SCP命令或SFTP图形化工具(如FileZilla)上传文件:

bash

# 上传后端jar包
scp target/your-application-0.0.1-SNAPSHOT.jar root@你的ECS公网IP:/opt/app/
# 上传前端静态文件
scp -r dist/* root@你的ECS公网IP:/usr/share/nginx/html/

2.6 服务器环境配置

安装JDK 11

bash

# Ubuntu 22.04安装OpenJDK 11
sudo apt update
sudo apt install openjdk-11-jdk -y
java -version   # 验证安装

如果是CentOS/Alibaba Cloud Linux,用 yum 代替 apt

安装并配置Nginx

bash

sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx   # 设置开机自启
curl http://localhost          # 验证访问

配置Nginx反向代理(关键步骤):修改 /etc/nginx/sites-available/default

nginx

server {
    listen 80;
    server_name 你的域名或公网IP;
    
    # 前端静态文件
    root /usr/share/nginx/html;
    index index.html;
    
    # API请求反向代理到Spring Boot后端
    location /api/ {
        proxy_pass http://localhost:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

配置完成后重启Nginx:

bash

sudo nginx -t           # 检查配置语法
sudo systemctl restart nginx

📘 Nginx作为高性能的Web服务器和反向代理服务器,在前端静态资源托管和API接口转发等场景中被广泛使用,将API请求反向代理到Spring Boot后端是前后端分离部署的标准架构。

安装MySQL(如ECS自建)

bash

sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql_secure_installation   # 安全配置
mysql -u root -p                 # 登录后创建项目和用户

💡 小贴士:安全性要求较高的场景推荐使用阿里云RDS MySQL,免去数据库运维的烦恼。

2.7 运行Spring Boot应用

bash

# 运行jar包
cd /opt/app
nohup java -jar your-application-0.0.1-SNAPSHOT.jar > app.log 2>&1 &

配置systemd服务实现开机自启(高阶但推荐):
创建服务文件 /etc/systemd/system/myapp.service

ini

[Unit]
Description=My Spring Boot Application
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/your-application-0.0.1-SNAPSHOT.jar
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

启用服务:

bash

sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl status myapp   # 查看状态

2.8 域名购买、解析与备案

  1. 注册域名:在阿里云域名服务输入想要的名字,未被占用即可注册,域名后缀通常选.com或.cn

  2. 实名认证:根据提示完成域名实名认证

  3. 解析配置:在域名控制台添加A记录,主机记录填 @ 或 www,记录值填服务器的公网IP,TTL 600秒

  4. ICP备案:国内服务器必须备案,备案流程在阿里云ICP备案系统完成

2.9 HTTPS配置(可选但强烈推荐)

有SSL证书更安全,也更专业:

bash

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d 你的域名 -d www.你的域名

全程跟着交互指引走就能自动配置好HTTPS证书。

2.10 验证部署结果

在浏览器中访问你的域名或公网IP,看到项目首页即表示部署成功。


三、进阶:云效CI/CD自动化部署(彻底告别手工劳作)

如果你还在每天手动执行 mvn clean package,然后小心翼翼地用scp把jar包传到生产环境,最后再重启服务——这篇文章就是为了让你彻底告别这种手工劳作。

为什么需要自动化部署?

传统Java应用部署通常包含:本地编译打包 → 手动上传服务器 → 停止旧服务 → 备份旧版本 → 部署新版本 → 启动服务 → 验证功能。每个环节都可能出错——网络传输中断、文件权限问题、环境变量缺失、依赖版本冲突……

自动化部署带来的核心价值:

  • 一致性保障:每次部署使用完全相同的流程和脚本,消除人为操作差异

  • 效率提升:从提交代码到上线运行,全程无需人工干预

  • 风险降低:回滚机制内置,出问题快速恢复到上一版本

  • 可追溯性:完整日志记录,便于问题排查和审计

为什么选云效+Docker?

市面上的CI/CD工具有很多,选择阿里云云效主要基于以下几点:

  • 开箱即用:无需自建服务器,注册即用

  • 深度集成:与阿里云ECS、容器服务、镜像仓库等产品无缝对接

  • 可视化配置:流水线配置完全图形化,学习成本低

  • 免费额度:个人和小团队有足够的免费构建时长

结合Docker,环境与代码一起打包,确保一致性,一次构建随处运行。

快速搭建CI/CD流水线

  1. 登录阿里云控制台,搜索“云效”进入工作台

  2. 首次使用需要创建企业(相当于工作空间,小团队直接用自己名字即可)

  3. 进入“流水线”模块,点击“新建流水线”

  4. 选择代码源(支持GitHub、GitLab、Gitee、Codeup等)

  5. 添加构建任务(Maven打包/NPM构建)

  6. 添加部署任务(选择ECS部署/Docker镜像构建)

  7. 保存并运行流水线

配置Docker部署的yaml示例:云效流水线具备Docker部署能力,最终部署的目标来源于流水线任务镜像构建产物,将项目Dockerfile与源码一起托管,流水线即可自动完成镜像构建、推送至ACR(阿里云容器镜像服务)并部署到ECS。

设置好之后,每次 git push 代码,流水线就会自动拉取最新代码 → 自动打包 → 自动部署 → 自动重启。部署效率从30分钟手动操作,缩短到5分钟全自动完成。


四、轻量方案速览

4.1 轻量应用镜像一键部署(5分钟上线)

最适合WordPress、Typecho等CMS建站,无需手动配置环境:

  1. 购买轻量应用服务器时,“镜像”选择“应用镜像”

  2. 搜索“WordPress”等,系统自动预装LNMP环境+程序

  3. 实例创建完成后,在“应用管理”查看后台地址和默认密码

  4. 浏览器访问,按提示完成初始化即可使用

4.2 OSS静态网站托管(超低成本)

OSS静态网站托管功能,支持将存储在存储空间中的静态文件(如HTML、CSS、JavaScript等)直接发布为公开访问的网站,无需维护传统服务器即可实现高可用网站部署。

操作步骤:

  1. 创建OSS Bucket,配置公共读权限,开启静态网站托管功能

  2. 上传静态页面文件(前端项目dist目录)

  3. 配置静态网站托管:默认首页设为index.html,默认404页设为404.html

  4. 绑定自定义域名(可选),完成DNS解析后即可通过域名访问

4.3 函数计算FC部署(按量付费,免运维)

函数计算是“无服务器”平台,只需要把代码打包上传,它会自动运行应用。不用管服务器在哪里、有多少台、内存多大,只需要按实际使用的计算资源付费。

使用Serverless Devs工具一键部署(以Python为例):

  1. 本地编写函数代码,准备 s.yaml 配置文件

  2. 执行 s deploy 命令完成部署

  3. 获取系统生成的访问URL即可访问


五、部署建议与避坑指南

✅ 最佳实践建议

  1. 测试阶段先用IP访问:域名备案需要时间,先用公网IP验证项目是否正常

  2. 代码版本管理:务必使用Git等版本管理工具,配合云效自动化部署事半功倍

  3. 环境备份:重要数据定期备份,可用OSS做自动化备份

  4. 监控告警:配置ECS的监控告警,及时发现服务器异常

❌ 常见坑点与解决方案

常见问题 解决方案
浏览器访问不了网站 检查安全组是否开放80/443端口
项目无法连接数据库 确认数据库服务已启动,检查防火墙和3306端口
Nginx返回502错误 Spring Boot应用未启动或不正常工作,检查后台运行状态
域名解析后无法访问 ping 域名检查解析是否生效,确认DNS TTL设置
备案期间网站无法访问 备案完成前可用服务器公网IP访问测试

⚠️ 安全注意事项

  • SSH的22端口建议设置源IP限制,只允许你自己的IP访问

  • MySQL等数据库端口不要对外开放公网访问,改为内网访问或白名单限制

  • 定期更新系统补丁:apt update && apt upgrade -y

  • 使用强密码,不要用默认密码


六、成本分析汇总

部署方案 典型成本构成 预估月费
ECS 2核2G + 1M带宽 49元/月(学生优惠约40元) 40-50元
轻量应用服务器 按套餐定价 40-60元
云效CI/CD(个人) 免费额度内 0元
OSS静态托管 按存储+流量 0.1-5元
函数计算FC 按调用次数/资源用量 按需

📝 写在最后

云端部署并不难,核心就是做足准备、一步步来。从ECS的实例创建、安全组配置,到项目打包上传、环境配置,再到域名解析和备案上线,只要按部就班就不会踩坑。而对于追求效率和规范化的开发者,云效CI/CD流水线+Docker容器化的进阶方案值得认真投入时间学习,它带来的效率提升远超初期配置的时间成本。

如果你是学生,别忘了走校园计划,年度成本可以控制在50元以内。如果你是创业者或中小企业主,建议从ECS手动部署起步,后续根据业务增长再引入自动化流水线。

希望这篇教程能帮助你把项目顺利部署到云上。如果有任何问题,欢迎在评论区留言交流!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐