很多人第一次碰云服务器,最先卡住的是连机器都不知道从哪下手。阿里云服务器搭建流程其实不复杂,大致就是选配置、开实例、连上去、装环境、把服务跑起来。这里用一个小型个人博客做例子,从头走一遍。

一个博客为什么要上服务器
小林是前端开发,手上有个基于 Node.js 的个人博客,有文章列表、Markdown 渲染和一个简单的评论接口。以前项目一直跑在自己电脑上,朋友想看效果,只能开着电脑远程演示,很麻烦。他想把它放到阿里云上,让链接随时能打开。
他的要求不高:访问量每天几百次,需要固定公网 IP 和一个域名,每月预算在一百元以内。这类需求用入门级云服务器完全够用,没必要一开始就追求高配。
先选对配置
进入阿里云 ECS 产品页选规格时,新手主要看三件事。
- CPU 和内存:2 核 4G 是个人项目和小型网站的常见起点,跑一个 Node.js 服务通常绰绰有余。
- 系统盘:40GB 左右的 ESSD 云盘一般够用,后面不够可以在线扩容。
- 带宽和计费方式:固定带宽和按流量计费都能选。小林访问量小,按流量付费更合适,不用为闲置带宽买单。
系统他选了 Ubuntu 22.04 LTS,资料多,遇到报错也容易搜到解决办法。如果你习惯 CentOS 或 Alibaba Cloud Linux,也能用,只是部分命令会略有不同。地域方面,读者主要在华东,他就选了杭州。选地域时优先靠近主要访问人群,延迟通常会更低。
创建实例和放行端口
下单后实例一般几分钟内启动。控制台会显示公网 IP,记下来,后面每一步都要用到。
安全组是很多新手会漏掉的地方。网站要让浏览器访问,除了 SSH 用的 22 端口,还得放行 80(HTTP)和 443(HTTPS)。小林在安全组规则里加了这两条入方向规则,授权对象填 0.0.0.0/0。
这里要提醒一句:全网开放只适合网站这类公网服务。MySQL 的 3306、Redis 的 6379 这类端口不要对外开放,最好只允许内网或指定 IP 访问。端口开得太随意,服务器很容易被扫描和爆破。
连上服务器,先别用 root 干活
Windows 可以用 PowerShell 或 PuTTY,macOS 和 Linux 直接用终端就行,命令是:
ssh root@你的公网IP
第一次连接会让你确认指纹,输入 yes,再输入创建实例时设置的密码即可。登上去之后,小林先建了一个普通用户并给它 sudo 权限,日常操作都用这个账号:
# 创建新用户
adduser deploy
# 赋予 sudo 权限
usermod -aG sudo deploy
# 切换到新用户
su - deploy
等服务跑通以后,再配置 SSH 密钥登录并关闭密码登录。这能降低被暴力破解的风险,最好在正式上线前做完,别拖到出了问题再补。
装 Nginx 和 Node.js
先更新软件包,再装项目依赖的环境。小林的博客需要 Node.js 和 Nginx:
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装 Nginx
sudo apt install -y nginx
# 通过 NodeSource 源安装 Node.js 18
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
装完后用 node -v 和 nginx -v 看版本号。再用浏览器访问公网 IP,如果出现 Nginx 默认欢迎页,说明 Web 服务已经起来了。如果打不开,先回头看安全组里 80 端口有没有放行,很多时候问题就出在这里。
拉代码、用 PM2 守护、配反向代理
小林用 Git 把代码拉到服务器上,之后更新只需要 pull:
cd /home/deploy
git clone https://你的代码仓库地址/blog.git
cd blog
npm install --production
npm run build
Node 进程如果直接在终端里跑,关掉终端服务就停了。小林用 PM2 来托管,程序崩溃时它还能自动拉起:
sudo npm install -g pm2
pm2 start npm --name "blog" -- start
pm2 save
pm2 startup
博客默认监听 3000 端口,外部请求走 80 端口,需要 Nginx 转发过去。小林在 /etc/nginx/sites-available/blog 里写了这段配置:
server {
listen 80;
server_name 你的域名;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
写完后执行 sudo ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/ 建立软链接,再用 sudo nginx -t 检查语法,无误后执行 sudo systemctl reload nginx 让配置生效。配置里少一个分号肉眼很难看出来,nginx -t 能省不少排查时间。
域名、备案和 HTTPS
如果有自己的域名,在阿里云域名控制台加一条 A 记录,主机记录填 www 或 @,记录值填服务器公网 IP。解析一般几分钟到半小时生效。
服务器在国内、域名要对外提供网站服务,需要先完成 ICP 备案。这个流程周期不短,最好提前安排,别等到上线当天才发现卡在这里。
备案通过后,用 Certbot 申请 Let’s Encrypt 免费证书,开启 HTTPS:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d 你的域名
证书申请成功后,Certbot 会自动改好 Nginx 配置,并设置续期任务。小林用浏览器打开域名,地址栏出现了锁形标志,博客就算正式上线了。
上线之后要看的几件事
服务跑起来不等于结束。小林给自己留了几项定期检查:
- 用 pm2 status 看进程是否正常。
- 页面打不开或出现 502 时,先翻 /var/log/nginx/error.log,排查时一般先看这里。
- 定期执行系统更新,尽快修补安全漏洞。
- 打开阿里云的云监控和快照,出问题时可以回滚,不用从头重装。
- 用 sudo certbot renew –dry-run 测一下,确认证书能自动续期。
小结
回头看,阿里云服务器搭建流程就是选配置、建实例、放行端口、连接服务器、装环境、上线服务、配置域名和 HTTPS 这几个环节。每一步目标都很具体,按顺序做,新手也能走完。小林的经验是先用小配置跑通整条链路,访问量上来再升级,这样花钱少,也不会一开始就被各种参数绕晕。