中小团队做项目,常卡在从本地跑通到对外提供服务这一步。本地能用不代表别人能用,服务器、数据库、文件存储、域名和备份都得自己考虑。自建机房投入大,日常维护也很琐碎。阿里云的云服务器、云数据库、对象存储和负载均衡可以按需搭配,遇到问题时官方文档和社区讨论也比较多。这篇文章用一个具体案例,走一遍阿里云部署项目的完整过程,重点讲服务器怎么选,以及上线前后哪些地方容易出错。

案例背景
某在线教育团队做了一套后端服务(Spring Boot)加前端页面(Vue),数据库用 MySQL,上传的文件直接放在本地磁盘。测试阶段,项目跑在一台笔记本电脑上对外演示。活动那几天网络时断时续,数据也没有任何保护,出了问题很难恢复。团队的目标很明确:服务要稳定,访问量上来时能扩展,初期成本也不能太高。于是决定把阿里云部署项目提上日程。
第一步:选服务器,不必一上来就买最高配
ECS(弹性计算服务)的配置表看起来很多,新手容易直接选最高规格,心里踏实,钱也花得多。其实先算一下业务量更实际。这个团队日活约两千,峰值并发不超过两百,后端主要是接口调用和少量文件上传。最后选的是 2 核 4G 的通用型实例,系统镜像用 Ubuntu 22.04 LTS。等真实流量出现后,再决定要不要升配。
选型时有三个地方需要留意:
- 地域:用户主要在华东,服务器也选华东节点,访问延迟会低一些。
- 带宽:按流量计费比较灵活,初期可以选小一点的固定带宽,用量上来再调。
- 磁盘:系统盘保持默认即可,另外挂一块数据盘专门放上传文件和日志。这样备份和扩容时,系统盘不用动。
第二步:提前办好域名备案
服务器在中国大陆,又要用域名对外提供网站访问,就必须先完成 ICP 备案。备案要准备主体证件和网站信息,审核周期常见在一到两周,具体以实际审核为准。很多团队是等上线那天才发现还没备案,只能干等。这个团队在开发阶段就开始办理,才没有被卡住。
备案还没通过时,可以先用服务器公网 IP 访问测试页面。这样能先确认环境和应用本身没问题,不至于备案完成后才发现代码有问题。
第三步:安全组和基础环境
安全组可以理解为云服务器前面的一道防火墙。规则配错,最常见的结果是服务打不开,或者端口被人扫到后遭到攻击。这个团队的做法是:
- 只开放 22(SSH)、80(HTTP)和 443(HTTPS)端口。
- SSH 的来源限制在团队办公网络的 IP 段,不对全网开放。
- 数据库 3306 端口不对公网开放,只允许同一内网或指定服务器访问。
服务器初始化时,先创建普通用户,禁用密码登录,改用密钥。然后统一安装 JDK、Nginx 和 MySQL 客户端,版本固定下来。这一步看起来琐碎,却能避免“本地能跑,线上报错”的常见情况。
第四步:部署应用和反向代理
后端 Spring Boot 项目打包成 jar,交给 systemd 管理。这样服务器重启后,应用能自动拉起来,不用人工登录去启动。前端 Vue 项目执行构建命令,生成静态文件后上传到服务器指定目录,由 Nginx 直接托管。
Nginx 同时承担反向代理。访问根路径时返回前端页面,访问 /api 开头的请求,则转发给本机 8080 端口的后端服务。对外只暴露一个域名和一个入口,后面配置 HTTPS 也更简单。
HTTPS 证书可以在阿里云控制台申请,控制台提供免费的 DV 证书,具体类型和额度以页面为准。下载后配置到 Nginx,再设置 HTTP 自动跳转到 HTTPS,就不会出现用户手动输入 http 地址还能访问的情况。
第五步:把数据库迁到 RDS
最开始数据库和应用放在同一台服务器上,两者抢 CPU 和内存,备份也只能靠手动。后来团队把 MySQL 迁到阿里云 RDS,自动备份、主备高可用和监控告警都由平台提供,省了不少运维精力。
迁移的顺序很重要。先在 RDS 中导入表结构和数据,再修改后端配置里的数据库地址,并在测试环境完整跑一遍业务流程。确认无误后再切到线上。切换前最好留一个回滚方案,比如保留原库的最新备份。
第六步:上线后的监控和排查
上线不代表工作结束。团队在云监控里给 CPU、内存、磁盘和带宽设置了告警阈值,应用日志按天切割,保留最近三十天。一次活动期间,监控显示内存占用持续上涨,排查后发现某个接口的缓存没有释放。修复之后,服务恢复平稳。这种问题在测试时很难暴露,只有真实流量下才会出现。
另外,团队会定期检查数据盘和 RDS 的备份,确认备份文件真的能恢复。很多项目有备份,却从来没有试过恢复,等出事时才发现文件不完整。
常见问题怎么查
- 端口无法访问:先看安全组规则,再看服务器防火墙,最后确认应用监听的地址是否正确。如果只监听了 127.0.0.1,外部请求自然进不来。
- 部署后页面空白:多半是前端路由或接口地址配置有误。可以检查 Nginx 的 try_files 规则,以及前端打包时使用的环境变量。
- 费用超出预期:定期查看账单明细,关掉不用的测试实例,释放闲置的公网 IP,避免这些资源长期计费。
阿里云部署项目并不难,难的是前期选型、安全配置和备份这些细节有没有做扎实。建议先用小规格把完整流程跑通,再根据真实数据逐步扩容。