很多人第一次在阿里云上部署网站,卡住的往往是一连串陌生的控制台、网络设置和安全规则。买完服务器只是开始,备案、端口放行、数据库白名单、HTTPS 证书,每一步都可能让上线时间往后拖。

这篇文章以一个小型内容管理系统为例,梳理从购买实例到应用上线的关键步骤,并把容易漏掉的地方单独拿出来说。读者最好有一定开发基础,对 Linux 命令行和 Nginx 配置有个大概印象。
一、案例背景:一套待上线的内容管理系统
某设计工作室用 Node.js 和 MySQL 开发了一套内容管理系统,用来整理客户案例和在线作品集。开发完成后,负责人小林要把它搬到阿里云上,让客户随时能打开。她的要求很朴素:
- 能通过 HTTP 访问,并且必须支持 HTTPS
- 数据库和应用分开部署,数据要定期备份
- 预算有限,先用低配置跑起来,流量上来后再扩容
最后的方案也很常见:一台轻量应用服务器跑应用,一个云数据库 RDS 存数据,图片放进对象存储 OSS。
二、动手之前先确认三件事
1. 实名认证
阿里云要求完成实名认证,部分产品没认证就买不了或用不了。如果是公司项目,建议直接用企业认证。后面开发票、办备案都会省事,中途换主体会比较麻烦。
2. ICP 备案
服务器放在中国大陆,又要用域名对外提供网页服务,就必须完成 ICP 备案。审核周期通常一到三周,是整个上线计划里最容易被低估的一步。小林在项目初期就提交了申请,所以上线当天不会因为域名打不开而着急。
3. 地域和网络
地域尽量选在主要用户所在的地方。应用服务器、数据库和对象存储最好在同一地域、同一专有网络 VPC 里。内网通信更快,数据库也不必暴露在公网上,少了一个能被直接扫描的入口。
三、核心部署步骤
1. 创建服务器,收紧安全组
创建轻量应用服务器时,选 Ubuntu 22.04 镜像,登录方式用 SSH 密钥,不用密码。安全组是这一步最需要细心的地方。小林只放行了三类端口:22 端口限定为办公室 IP 访问,80 和 443 对外开放,其余全部关闭。规则越少,被扫描和攻击的机会也越少。
2. 装好运行环境
登录服务器后,先更新系统软件包,再安装 Node.js 和 Nginx。Nginx 负责接收外部请求,转发给本机上运行的 Node 应用。配置文件写好后,先检查语法再重载,否则一个括号打错,整个站点都会受影响。
3. 数据库和对象存储
在 RDS 里新建数据库实例,再单独建一个账号。这个账号只授予目标数据库的读写权限,不要让应用直接用 root 连接。RDS 白名单里只添加应用服务器的内网 IP。图片上传到 OSS 后,再通过 CDN 加速访问,页面加载会快不少。
4. 拉代码、管理进程
代码通过 Git 拉到服务器上。数据库密码、密钥这类环境变量写进服务器上的独立配置文件,不提交到代码仓库。仓库一旦泄露,这些信息很难收回。进程交给 PM2 管理,应用异常退出会自动重启,服务器重启后也会自动拉起。
5. 配置 HTTPS
在阿里云控制台申请免费 SSL 证书,绑定到域名上。Nginx 里把 80 端口的请求跳转到 443。证书有有效期,到期前要续期。建议在日历里设提醒,或者直接用自动续期方案,免得等浏览器弹出安全警告才想起来。
四、上线后最常见的四类问题
- 公网打不开:先查安全组是否放行了 80 和 443,再看 Nginx 的监听端口和 server_name 是否写对,按网络层到应用层逐层排查。
- 数据库连接超时:多半是 RDS 白名单没有加应用服务器的内网地址,或者应用误用了公网地址连库。检查连接字符串里的主机名,通常就能定位。
- 磁盘空间不足:日志持续增长是常见原因。用 logrotate 定期切割和清理,比上线后临时手动删文件靠谱得多。
- 账单超出预期:公网流量和按量计费资源最容易产生意外开销。在费用中心设好预算告警,金额一超就会收到通知。
五、备份与日常维护
上线不等于结束。小林为 RDS 开启了每日自动备份,保留七天;服务器每周做一次快照。误删数据或系统出问题时,两者配合能较快恢复业务。
另外,每隔一段时间检查一次安全组和账号列表,把不再使用的端口、测试账号删掉。权限只给够用的,出问题时影响范围也小。
六、小结
阿里云部署本身不难,难的是备案、网络、权限和成本之间要来回权衡。这些前置事项先处理好,上线后的返工会少很多。如果是第一次上云,建议先用小配置把完整流程跑通,再根据真实访问数据决定什么时候扩容。