新人小白的第一台云服务器:从零到上线的完整实战指南

摘要:本文面向完全零基础的新手,用通俗易懂的语言和保姆级步骤,带你从注册阿里云账号开始,到选购 ECS、连接服务器、配置安全、部署网站、绑定域名,最终完成一个可对外访问的完整项目。全文覆盖 Windows 与 Mac 双平台操作,附常用命令速查与故障排查流程,助你真正迈出云计算实战第一步。

关键词:云服务器、ECS、新手入门、Linux、LNMP、域名解析、SSL证书、网站部署、阿里云

版权声明:本文为原创技术文章,首发于 CSDN。转载请注明出处,保留作者署名及原文链接。未经授权,禁止用于商业用途或二次发布至其他平台。

本文写给谁看:你听说过云服务器,但觉得它很高大上、很吓人、不敢动手?或者你想搭个网站、跑个应用,但完全不知道从哪里开始?这篇文章就是为你而写的。全程大白话 + 实操步骤,从注册账号到网站上线,手把手带你走一遍。文末有全套总结和架构全景图,可以直接对着抄。


目录


一、云服务器到底是什么?

1.1 一句话解释

云服务器 = 一台你远程租用的电脑。

它不在你的桌子上,而在阿里云的机房里。你通过 Internet 连上去,像操作自己的电脑一样操作它。只不过这台电脑:

  • 24 小时开机,不会断电
  • 带宽最低 1Mbps 起步,最高可达 200Mbps(不同实例规格上限不同),按需选择即可
  • 坏了阿里云负责修,不用你换硬盘
  • 用多少付多少,不用一次性买一台实体机

1.2 和实体电脑的区别

对比项你的笔记本电脑云服务器 ECS
位置放你桌上在阿里云机房
连接方式按开机键通过 SSH 远程登录
稳定性你关机会断网24x7 持续运行
公网 IP没有(你的电脑在家庭内网)有,全世界都能访问
带宽50M 家庭宽带1Mbps 起步,最高 200Mbps(根据实例规格)
成本一次性 5000 元每月 99 元起(入门级)
维护自己装系统、修硬件阿里云负责硬件和网络

1.3 为什么推荐小白用云服务器

新手学云计算、学 Linux、学建站,不要买实体服务器。理由很简单:

  1. 试错成本低:配置选错了,随时释放重新买,实体机买了不能退
  2. 零基础也能上手:有图形化控制台,点几下鼠标就创建好
  3. 学到真东西:SSH 远程管理、Linux 命令、Web 部署……都是真正的服务器运维技能
  4. 可跑真实项目:你的个人博客、微信小程序后端、爬虫脚本,都可以跑在上面

你的第一台服务器,不需要很贵。阿里云 99 元/年的「新用户专享」轻量应用服务器,足够你跑博客、练手、学 Linux。学完再升级。


二、准备工作:选一台适合你的服务器

2.1 注册阿里云账号

  1. 打开 阿里云官网
  2. 点击右上角「免费注册」,用邮箱或手机号注册
  3. 完成实名认证:个人用户上传身份证正反面,企业用户上传营业执照
  4. 绑定支付方式(支付宝/银行卡),用于后续按量付费扣款

⚠️ 重要提醒:实名认证是必须的,不然无法购买 ECS。认证过程大约 1-2 分钟,很快。

2.2 选购 ECS 的关键参数怎么选

登录阿里云控制台 → 搜索「ECS」→ 进入「云服务器 ECS」→ 点击「创建实例」。

你会看到一堆参数,别慌,我来逐个解释:

计费方式
计费方式适合场景小白建议
包年包月长期运行(>3个月)推荐新手选这个,99元/年起,价格透明
按量付费临时测试、用完即释放适合临时跑个实验,小心费用溜走
抢占式实例可中断任务(渲染、大数据)不推荐新手,会被回收
地域和可用区
  • 地域:服务器的物理位置,比如「华东 1(杭州)」「华北 2(北京)」
  • 可用区:同一地域内的不同机房,比如「杭州可用区 A」和「杭州可用区 B」

小白选择原则:

  • 选离你用户最近的地域。如果你的用户主要在北方,选北京;在南方,选杭州/深圳
  • 如果不确定,选华东 1(杭州)——阿里云总部所在地,资源最丰富
  • 可用区随机选即可,对小白来说没有差别
实例规格:CPU 和内存

这是最重要的参数。规格族的命名规则:

ecs.c7.large  →  计算型 c7 系列,2核CPU 4GB内存
ecs.r7.xlarge →  内存型 r7 系列,4核CPU 16GB内存
ecs.g7.large  →  通用型 g7 系列,2核CPU 8GB内存
用途推荐规格价格参考(包年包月)
个人博客 / 学习 Linux1核 2GB 或 2核 2GB99-200 元/年
小型 Web 应用 / 微信小程序后端2核 4GB500-800 元/年
中型网站 / 电商系统2核 8GB 或 4核 8GB1500-3000 元/年
数据库服务器 / 缓存服务器内存型 r7 系列,4核 16GB+3000-6000 元/年

小白推荐:先选 2核 2GB 或 2核 4GB 的「共享标准型」或「突发性能实例」,够用且便宜。等业务大了再升级,阿里云支持在线变配(不停机升级配置)。

镜像:操作系统选择
镜像类型推荐适合谁
CentOS 7.9 / CentOS 8不推荐新手已停止维护,社区转向 AlmaLinux/Rocky Linux
AlmaLinux 8/9⭐ 推荐CentOS 的完美替代,完全兼容
Ubuntu 22.04 LTS⭐ 推荐社区最大,教程最多,新手友好
Debian 12可选比 Ubuntu 更纯净,适合有一定基础的人
Windows Server不推荐贵、慢、不适合跑 Web 服务

我的建议:新手选 AlmaLinux 9 或 Ubuntu 22.04 LTS。两个都是 Linux 系统,免费、稳定、教程多。

存储:系统盘和数据盘
  • 系统盘:装操作系统的地方,默认 40GB,够用了
  • 数据盘:额外加一块硬盘,用来存你的代码、数据库、日志等

小白建议:

  • 系统盘默认 40GB 就行
  • 如果要做图片站、视频站,加一块 100GB 的数据盘(ESSD 入门版,0.5元/GB/月)
  • 存储类型选 ESSD 云盘(性能最好)或 高效云盘(性价比最高)

2.3 网络和存储配置

网络配置

创建实例时,网络部分会自动帮你创建:

  • VPC(专有网络):阿里云的默认 VPC,相当于你专属的网络
  • 交换机(vSwitch):VPC 下的子网,自动分配内网 IP
  • 安全组:默认会有一个安全组,只开放 22 端口(SSH)和 3389 端口(Windows远程桌面)

小白操作:这些全部选默认即可,阿里云会自动帮你搞定。

带宽和 IP
  • 带宽计费方式:
    • 按固定带宽:比如买 1Mbps,一个月几十元,适合流量稳定的网站
    • 按使用流量:用多少付多少,适合流量不确定的场景
  • 分配公网 IP:一定要勾选,不然你的服务器没公网 IP,全世界访问不到

小白建议:

  • 先选 1Mbps 固定带宽(约 23 元/月),够用
  • 如果流量大了,随时升级
  • 勾选「分配公网 IPv4 地址」

💡 带宽 1Mbps 是什么意思?
1Mbps = 128KB/s 的下载速度。对于一个文字博客,1Mbps 够 20-30 人同时访问。如果图片多,建议升级到 5Mbps。

最后一步:设置登录凭证

有两种方式登录你的服务器:

方式安全性小白推荐度
密钥对(Key Pair)⭐⭐⭐⭐⭐ 最高⭐⭐⭐⭐⭐ 强烈推荐
密码⭐⭐ 较低不推荐

密钥对登录方式:

  1. 阿里云自动生成一对密钥(公钥 + 私钥)
  2. 公钥放在服务器上,私钥下载到你的电脑(.pem 文件)
  3. 你登录时,用私钥证明「我是我」,不需要输入密码

操作步骤:

  1. 选择「密钥对」→ 点击「创建密钥对」
  2. 输入密钥对名称(如 my-first-key)
  3. 阿里云自动下载 .pem 文件到你电脑 → 务必保存好!丢了无法找回!
  4. 创建实例时选择这个密钥对
确认订单并创建

检查所有配置:

  • ✅ 地域:华东 1(杭州)
  • ✅ 规格:2核 2GB(共享标准型)
  • ✅ 镜像:AlmaLinux 9 / Ubuntu 22.04
  • ✅ 系统盘:40GB ESSD
  • ✅ 带宽:1Mbps,分配公网 IP
  • ✅ 登录方式:密钥对

确认无误后,点击「确认订单」→ 支付。创建过程大约 1-3 分钟。


三、连接你的服务器:迈出第一步

3.1 获取服务器连接信息

实例创建成功后,在 ECS 控制台 → 实例列表,找到你的服务器,点击「管理」。

你需要记录以下信息:

信息位置示例
公网 IP实例详情页 → 网络信息47.96.123.45
用户名Linux 系统默认是 rootroot
登录方式你创建时选的密钥对
密钥文件你下载的 .pem 文件my-first-key.pem

3.2 Windows 上连接:PuTTY / Xshell

Windows 10/11 已经内置了 OpenSSH 客户端,你可以直接用 PowerShell 或 Windows Terminal 进行 SSH 登录。如果你喜欢用图形化工具,也可以下载 PuTTY 或 Xshell。

方案 A:PuTTY(免费,推荐)
  1. 下载 PuTTY 并安装
  2. 打开 PuTTYgen(PuTTY 自带的密钥转换工具)
  3. 点击「Load」,选择你下载的 .pem 文件
  4. 点击「Save private key」,保存为 .ppk 文件(PuTTY 专用格式)
  5. 打开 PuTTY:
    • Host Name:输入你的公网 IP(如 47.96.123.45)
    • Port:22(默认)
    • Connection → SSH → Auth → Private key:选择刚才保存的 .ppk 文件
  6. 点击「Open」,输入用户名 root,回车登录
方案 B:Windows Terminal(Windows 10/11 推荐)

Windows 10 2004 版本以后,可以用 PowerShell 直接 SSH:

# 1. 先给密钥文件设置权限(否则 SSH 会拒绝使用)
icacls "C:\Users\你的用户名\Downloads\my-first-key.pem" /inheritance:r /grant:r "%username%:R"

# 2. 直接 SSH 连接
ssh -i "C:\Users\你的用户名\Downloads\my-first-key.pem" root@47.96.123.45

3.3 Mac 上连接:终端直接搞定

Mac 自带 SSH,操作最简单:

# 1. 给密钥文件设置权限(必须做,否则 SSH 拒绝连接)
chmod 400 ~/Downloads/my-first-key.pem

# 2. 直接连接
ssh -i ~/Downloads/my-first-key.pem root@47.96.123.45

第一次连接会提示 Are you sure you want to continue connecting?,输入 yes 回车即可。

3.4 常用 Linux 命令速查

登录成功后,你会看到类似这样的提示:

[root@iZbp1abcdefg123456789Z ~]#

这表示你已经进入服务器了!下面是新手最常用的命令:

# 查看当前目录下的文件
ls

# 查看当前目录(完整路径)
pwd

# 切换目录
cd /var/www/html

# 查看文件内容
cat filename.txt

# 编辑文件(用 nano,比 vim 简单)
nano filename.txt

# 安装软件(AlmaLinux/CentOS)
yum install -y nginx

# 安装软件(Ubuntu)
apt update && apt install -y nginx

# 查看系统运行状态
top

# 查看磁盘空间
df -h

# 查看内存使用
free -h

# 查看网络连接(看哪些端口在监听)
netstat -tlnp

# 退出服务器
exit

💡 小技巧:在 Linux 里,按 Tab 键可以自动补全文件名和命令,按 ↑ 键可以调用上一条命令。善用这两个键,效率翻倍。


四、安全第一课:别让你的服务器裸奔

4.1 安全组:服务器的防火墙

安全组(Security Group)是阿里云提供的虚拟防火墙,控制「哪些 IP、哪些端口可以访问你的服务器」。

默认情况下,阿里云只给你开了:

  • 22 端口(SSH 远程登录)
  • 3389 端口(Windows 远程桌面)

但当你跑 Web 服务时,需要额外开放端口:

端口用途是否需要开放
22SSH 远程登录✅ 必须(但建议限制 IP)
80HTTP 网站访问✅ 必须
443HTTPS 网站访问✅ 必须
3306MySQL 数据库❌ 不要对公网开放!
6379Redis 缓存❌ 不要对公网开放!
8080开发测试端口⚠️ 用完立即关闭

如何添加安全组规则:

  1. 进入 ECS 控制台 → 实例 → 点击「管理」
  2. 左侧菜单「安全组」→ 点击你的安全组名称
  3. 点击「添加安全组规则」:
    • 协议类型:自定义 TCP
    • 端口范围:80/80(HTTP)
    • 授权对象:0.0.0.0/0(表示全世界都能访问,后面再优化)
    • 优先级:1
  4. 同样方法添加 443 端口(HTTPS)

⚠️ 危险操作:千万不要把 3306(MySQL)和 6379(Redis)开放到公网!如果你的数据库在公网可访问,黑客分分钟爆破进来。数据库只让内网服务器访问,后面会讲 VPC 怎么配置。

4.2 创建 RAM 用户:别把主账号密码给任何人

RAM(Resource Access Management) 是阿里云的资源访问控制服务。简单说:不要把你阿里云的主账号(相当于「老板卡」)随便给别人,而是给每个人发一张「员工卡」(RAM 用户),每张卡只能开特定的门。

为什么要这样做?

  • 如果 10 个人都知道主账号密码,1 个人泄露了 = 全部完蛋
  • 如果用 RAM 用户,每个人的权限可以单独控制,单独回收

创建 RAM 用户的步骤:

  1. 阿里云控制台 → 搜索「RAM」→ 进入「访问控制」
  2. 左侧「用户」→ 点击「创建用户」
  3. 输入登录名称(如 developer-zhangsan)
  4. 勾选「控制台访问」和「编程访问」
  5. 创建完成后,系统会显示 AccessKey ID 和 AccessKey Secret → 立即复制保存,只显示一次!
  6. 给这个 RAM 用户授权:
    • 点击「添加权限」
    • 搜索并选择「AliyunECSReadOnlyAccess」(只读 ECS)
    • 或者根据实际需要选择其他权限策略

场景举例:你雇了一个外包帮你开发,你可以给他一个 RAM 用户,只给他「查看 ECS 日志」和「上传 OSS 文件」的权限,他不能删除服务器、不能看账单、不能改域名解析。

4.3 密钥 vs 密码:强烈建议用密钥登录

密码登录的安全隐患:

  • 黑客可以用「密码字典」暴力破解你的密码
  • 简单密码(如 123456、password)几秒钟就被破解
  • 密码泄露后,任何人都能登录

密钥登录的优势:

  • 密钥是一段极长的随机字符串(2048 位以上),暴力破解几乎不可能
  • 即使黑客知道你的 IP,没有私钥文件也无法登录
  • 私钥只存在你的电脑上,不会在网络上传输

如果你已经用密码创建了服务器,如何改用密钥?

# 1. 登录服务器后,生成新的密钥对
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"

# 2. 按提示操作,默认保存在 ~/.ssh/id_rsa
# 3. 将公钥添加到授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 4. 下载私钥文件到本地(用 scp 或 FTP 工具)
# 5. 修改 SSH 配置,禁用密码登录
nano /etc/ssh/sshd_config

在 sshd_config 中修改:

PasswordAuthentication no      # 禁用密码登录
PubkeyAuthentication yes       # 启用密钥登录
PermitRootLogin prohibit-password  # 禁止 root 用密码登录
# 重启 SSH 服务生效
systemctl restart sshd

4.4 更新系统和关闭高危端口

服务器刚创建好,第一件事就是更新系统:

# AlmaLinux / CentOS
yum update -y

# Ubuntu
apt update && apt upgrade -y

然后关闭不需要的服务和端口:

# 查看当前运行的服务
systemctl list-units --type=service

# 关闭不需要的服务(例如邮件服务)
systemctl stop postfix
systemctl disable postfix

# 安装防火墙(如果系统没有)
# AlmaLinux / CentOS
yum install -y firewalld
systemctl enable firewalld
systemctl start firewalld

# 只开放必要端口
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload

五、部署你的第一个网站

5.1 安装 Web 环境:LNMP 一键安装

LNMP 是 Linux + Nginx + MySQL + PHP 的缩写,是跑动态网站(WordPress、Discuz 等)的经典组合。

一键安装脚本(推荐新手):

# 下载 LNMP 一键安装包(以 lnmp.org 为例)
wget http://soft.vpser.net/lnmp/lnmp2.1.tar.gz -O lnmp2.1.tar.gz

# 解压
tar zxf lnmp2.1.tar.gz

# 进入目录并安装
cd lnmp2.1
./install.sh lnmp

# 按提示选择:
# - MySQL 版本:选 8.0(最新)或 5.7(稳定)
# - PHP 版本:选 8.1 或 8.2
# - Nginx 版本:选 1.24(最新稳定版)
# - 是否安装 InnoDB:选 Yes(必须)
# - 数据库 root 密码:设置一个强密码!

安装过程大约 20-40 分钟(取决于服务器配置)。安装完成后,你的服务器已经能跑 PHP 网站了。

验证安装是否成功:

# 查看 Nginx 是否运行
systemctl status nginx

# 查看 MySQL 是否运行
systemctl status mysqld

# 查看 PHP 是否运行
systemctl status php-fpm

在浏览器里输入你的公网 IP,如果看到 Nginx 的欢迎页面,说明安装成功!

5.2 Nginx 核心配置:你的网站「交通警察」

安装好 LNMP 后,Nginx 已经在后台默默工作了。但你得知道它是什么、怎么配,不然网站出了问题会一脸懵。

Nginx 是什么?

Nginx(发音 “engine-x”)是一个高性能的 Web 服务器和反向代理服务器。你可以把它理解为:

网站的「交通警察」——所有用户访问你的网站,都要先经过 Nginx,它决定把请求分发给谁(PHP 文件交给 PHP 处理,静态文件直接返回,图片视频交给 OSS)。

相比老牌的 Apache,Nginx 的特点是:

  • 占用内存少:1 核 1GB 的服务器也能跑得很流畅
  • 并发能力强:轻松扛住几千人同时访问
  • 配置简单:一个文件就能定义一个网站的规则
Nginx 核心配置文件

Nginx 的主配置文件在 /usr/local/nginx/conf/nginx.conf,你创建的每个网站通常会有一个单独的虚拟主机配置文件:

# 主配置文件(全局设置)
nano /usr/local/nginx/conf/nginx.conf

# 虚拟主机配置文件(每个网站一个)
nano /usr/local/nginx/conf/vhost/yourname.com.conf
一个最小可用的 Nginx 配置长什么样
server {
    listen 80;                          # 监听 80 端口(HTTP)
    server_name yourname.com;           # 你的域名
    root /var/www/html;                 # 网站文件放在哪里
    index index.html index.php;         # 默认打开的文件

    # 处理静态文件(图片、CSS、JS)
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
        expires 30d;                    # 缓存 30 天
    }

    # 处理 PHP 请求(交给 PHP-FPM)
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;    # PHP 处理器的地址
        fastcgi_index index.php;
        include fastcgi.conf;
    }

    # 日志记录
    access_log /var/log/nginx/yourname.com.access.log;
    error_log /var/log/nginx/yourname.com.error.log;
}
常用 Nginx 命令速查
# 测试配置是否正确(修改配置后必须先执行这个)
nginx -t

# 重载配置(不中断服务)
nginx -s reload

# 重启 Nginx
systemctl restart nginx

# 停止 Nginx
systemctl stop nginx

# 查看 Nginx 进程状态
ps aux | grep nginx

⚠️ 重要:每次修改 Nginx 配置文件后,务必执行 nginx -t 检查语法,再执行 nginx -s reload 生效。如果配置写错了,Nginx 会拒绝加载,你的网站就打不开了。

为什么 Nginx 很重要
  • 反向代理:把用户请求转发给后端应用(PHP、Node.js、Python)
  • 负载均衡:多台服务器时,把流量均匀分配给每台机器
  • 静态资源加速:图片、CSS、JS 直接由 Nginx 返回,不用麻烦后端程序
  • Gzip 压缩:开启后网页传输体积减少 60%,访问速度大幅提升

5.3 部署你的项目文件

方式一:用 scp 命令上传(适合小文件)
# 从本地上传文件到服务器
scp -i my-first-key.pem ./my-project.zip root@47.96.123.45:/var/www/html/

# 登录服务器解压
ssh -i my-first-key.pem root@47.96.123.45
cd /var/www/html
unzip my-project.zip
方式二:用 FTP 工具(适合大量文件,推荐 FileZilla)
  1. 下载 FileZilla
  2. 打开 FileZilla → 站点管理器 → 新站点:
    • 协议:SFTP(SSH 文件传输协议)
    • 主机:你的公网 IP
    • 端口:22
    • 登录类型:密钥文件
    • 密钥文件:选择你的 .pem 文件
  3. 连接后,左侧是本机文件,右侧是服务器文件
  4. 拖拽上传即可
方式三:用 Git 直接拉取(适合代码项目)
# 在服务器上安装 Git
yum install -y git

# 克隆你的项目
cd /var/www/html
git clone https://github.com/yourname/your-project.git

# 如果有依赖,安装(以 Node.js 为例)
cd your-project
npm install
npm run build

5.4 域名注册:给你的网站一个名字

IP 地址(如 47.96.123.45)不好记,而且换服务器 IP 会变。域名(如 yourname.com)好记、好分享、还能绑定 SSL 证书。

域名注册步骤:

  1. 阿里云控制台 → 搜索「域名」→ 进入「域名控制台」
  2. 点击「域名注册」→ 输入你想注册的域名(如 yourname.com)
  3. 查询是否可用 → 如果可用,加入购物车
  4. 选择购买年限(1-10 年)→ 付款
  5. 完成实名认证:域名注册后必须实名认证才能使用

💡 域名选择建议:

  • 尽量短、好记、有意义
  • .com 通用性最好,但好名字大多被注册了
  • .cn 便宜(约 30-50 元/年),但只面向中国用户
  • 如果 .com 被注册,可以尝试 .net、.org、.io(技术类)、.dev(开发者)

5.5 域名解析:让用户能找到你

买了域名后,还需要告诉全世界「这个域名对应哪个 IP 地址」,这个过程叫域名解析(DNS 解析)。

添加解析记录:

  1. 阿里云控制台 → 域名 → 找到你的域名 → 点击「解析」
  2. 点击「添加记录」:
    • 记录类型:A(将域名指向 IPv4 地址)
    • 主机记录:
      • 填 @ → 表示主域名(如 yourname.com)
      • 填 www → 表示 www.yourname.com
      • 填 api → 表示 api.yourname.com
    • 解析请求来源:默认(全球)
    • 记录值:你的服务器公网 IP(如 47.96.123.45)
    • TTL:默认 10 分钟
  3. 点击「确认」

配置 Nginx 虚拟主机:

# 编辑 Nginx 配置文件
nano /usr/local/nginx/conf/vhost/yourname.com.conf

添加以下内容:

server {
    listen 80;
    server_name yourname.com www.yourname.com;
    root /var/www/html/your-project;
    index index.html index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

    location ~ /\.(git|env|sql)$ {
        deny all;
    }
}
# 测试 Nginx 配置是否正确
nginx -t

# 重启 Nginx
systemctl restart nginx

等待 DNS 生效(通常 10 分钟 - 2 小时),然后在浏览器输入 yourname.com,应该能看到你的网站了!

5.6 申请 SSL 证书:让网站显示「安全」锁

没有 SSL 证书的网站,浏览器会显示「不安全」警告,吓跑用户。有了 SSL 证书,网站会变成 https://,地址栏显示小锁头🔒。

申请免费 SSL 证书:

  1. 阿里云控制台 → 搜索「SSL」→ 进入「数字证书管理服务」
  2. 点击「创建证书」→ 选择「免费证书」(DV 域名验证型,有效期 1 年)
  3. 输入域名 → 选择验证方式:
    • 自动 DNS 验证(推荐,如果域名在阿里云解析)
    • 手动 DNS 验证(需要添加一条 TXT 记录)
  4. 提交后等待审核(通常几分钟到几小时)
  5. 审核通过后,下载证书文件(Nginx 格式)

配置 Nginx 使用 SSL:

# 上传证书文件到服务器
mkdir -p /usr/local/nginx/cert
# 用 scp 或 FileZilla 上传 .pem 和 .key 文件到 /usr/local/nginx/cert/

# 编辑 Nginx 配置
nano /usr/local/nginx/conf/vhost/yourname.com.conf

修改配置:

server {
    listen 80;
    server_name yourname.com www.yourname.com;
    # 将 HTTP 自动跳转到 HTTPS
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name yourname.com www.yourname.com;
    root /var/www/html/your-project;
    index index.html index.php;

    # SSL 证书配置
    ssl_certificate /usr/local/nginx/cert/yourname.com.pem;
    ssl_certificate_key /usr/local/nginx/cert/yourname.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}
# 测试配置并重启
nginx -t
systemctl restart nginx

现在访问 https://yourname.com,应该能看到小锁头了!🎉


六、数据存储:文件和备份

6.1 为什么需要对象存储 OSS

前面把网站文件放在服务器硬盘上,但遇到几个问题:

  • 图片、视频多的时候,硬盘空间不够
  • 用户访问图片时,占用服务器带宽,网站变慢
  • 换服务器时,文件迁移麻烦

OSS(对象存储) 就是来解决这些问题的。你可以把它理解成一个「无限大的网盘」:

  • 文件存在云端,不占用服务器硬盘
  • 通过 CDN 加速,用户从最近的服务器下载图片,速度快
  • 和服务器解耦,换服务器不影响文件

6.2 创建 OSS 存储桶并上传文件

创建存储桶:

  1. 阿里云控制台 → 搜索「OSS」→ 进入「对象存储 OSS」
  2. 点击「创建 Bucket」:
    • Bucket 名称:全局唯一,如 yourname-images
    • 地域:和你的 ECS 同一个地域(减少内网流量费)
    • 存储类型:标准存储(热数据)
    • 读写权限:
      • 私有:文件需要签名才能访问(适合敏感文件)
      • 公共读:所有人都能访问(适合图片、CSS、JS 等静态资源)
      • 公共读写:任何人都能上传和删除(不推荐)
  3. 点击「确定」创建

上传文件:

  1. 进入 Bucket → 点击「文件管理」→「上传文件」
  2. 拖拽文件或点击选择文件
  3. 上传完成后,文件会有一个 URL,如 https://yourname-images.oss-cn-hangzhou.aliyuncs.com/photo.jpg

在网站中使用 OSS 文件:

<!-- 以前 -->
<img src="/images/photo.jpg" alt="照片">

<!-- 现在 -->
<img src="https://yourname-images.oss-cn-hangzhou.aliyuncs.com/photo.jpg" alt="照片">

6.3 快照:给你的服务器拍个照

快照(Snapshot)是磁盘在某个时刻的完整备份。就像给服务器「拍个照片」,如果以后系统坏了、数据丢了、被黑了,可以回滚到这个快照状态。

创建快照:

  1. ECS 控制台 → 实例 → 点击「管理」
  2. 左侧「本实例磁盘」→ 找到系统盘 → 点击「创建快照」
  3. 输入快照名称(如 before-upgrade-2026-06-22)
  4. 点击「确定」

设置自动快照策略(强烈推荐):

  1. 左侧「快照」→「自动快照策略」
  2. 创建策略:
    • 策略名称:daily-backup
    • 创建时间:每天凌晨 3:00(业务低峰期)
    • 保留天数:7 天(自动删除旧快照,节省空间)
  3. 将策略应用到你的磁盘

💡 快照是免费的吗?
快照按存储空间收费,约 0.12 元/GB/月。如果你的系统盘 40GB,一个快照约 4.8 元/月。7 个快照约 33.6 元/月。这是花小钱买大安心。


七、日志与问题排查:出了问题不慌

7.1 日志服务 SLS 简介

服务器运行过程中会产生大量日志:

  • Nginx 访问日志:谁访问了你的网站,访问了哪些页面
  • Nginx 错误日志:网站出错了,原因是什么
  • 应用日志:你的程序打印的日志
  • 系统日志:操作系统运行日志

没有日志管理的问题:

  • 日志文件越来越大,撑爆硬盘
  • 出了问题,要到服务器上手动翻日志,效率低
  • 日志分散在多台服务器,无法统一分析

SLS(日志服务) 可以帮你:

  • 自动收集所有服务器的日志到云端
  • 通过搜索快速定位问题(比如搜 error 或 500)
  • 设置告警,出错时自动发短信通知你

小白简化方案:先不用 SLS,直接在服务器上看日志:

# 实时查看 Nginx 访问日志(像看直播一样)
tail -f /usr/local/nginx/logs/access.log

# 查看 Nginx 错误日志
tail -f /usr/local/nginx/logs/error.log

# 查看系统日志
journalctl -f

# 搜索日志中的关键词
grep "500" /usr/local/nginx/logs/error.log

业务大了以后,再用 SLS 做日志集中管理。

7.2 快速定位网站无法访问的问题

网站突然打不开了?按这个顺序排查:

Step 1: 检查域名解析
├─ 在本地命令行执行:ping yourname.com
├─ 如果返回的 IP 不是你的服务器 IP → DNS 解析问题
└─ 解决:检查 DNS 记录,确认 A 记录指向正确 IP

Step 2: 检查服务器是否运行
├─ 在服务器上执行:systemctl status nginx
├─ 如果显示 inactive → Nginx 挂了
└─ 解决:systemctl restart nginx

Step 3: 检查安全组/防火墙
├─ 确认 80 和 443 端口已开放
├─ 检查服务器防火墙:firewall-cmd --list-all
└─ 解决:添加规则开放端口

Step 4: 检查磁盘空间
├─ 执行:df -h
├─ 如果某个分区 100% → 磁盘满了,服务无法写入
└─ 解决:清理日志或大文件

Step 5: 检查 Nginx 配置
├─ 执行:nginx -t
├─ 如果有语法错误 → 修复配置文件
└─ 解决:根据错误提示修改配置

Step 6: 查看应用日志
├─ 查看 PHP/MySQL 错误日志
└─ 根据错误信息修复代码或数据库

7.3 常用排查命令

# 查看当前运行的进程
ps aux | grep nginx

# 查看端口占用情况
netstat -tlnp | grep :80

# 查看最近的系统日志(最后 50 行)
journalctl -n 50

# 查看 Nginx 配置语法
nginx -t

# 测试网站响应
curl -I http://yourname.com

# 查看 DNS 解析结果
nslookup yourname.com

# 检查网络连通性(从你的服务器访问外网)
ping www.baidu.com

# 查看磁盘哪些文件占用最大
du -sh /var/log/*

# 清理 Nginx 日志(如果太大)
echo "" > /usr/local/nginx/logs/access.log
echo "" > /usr/local/nginx/logs/error.log

八、进阶:打造高可用架构

8.1 VPC 专有网络:划分你的虚拟机房

VPC(Virtual Private Cloud)是阿里云给你的一个「虚拟机房」。你的所有云资源(ECS、RDS、OSS)都在这个虚拟网络里,只有你能访问,其他用户完全隔离。

为什么要用 VPC?

  • 安全隔离:你的服务器和其他人的服务器虽然在同一个物理机房,但网络完全隔离
  • 灵活划分:可以划分「公共子网」(放 Web 服务器)和「私有子网」(放数据库)
  • 合规要求:很多行业等保要求必须使用 VPC

小白简化操作:

  • 创建 ECS 时,阿里云已经自动给你创建了默认 VPC 和交换机,不用手动配置
  • 默认 VPC 已经够用了,等你有多个服务器时,再考虑手动划分 VPC

未来进阶的架构:

┌──────────────────────────────────────────────────┐
│                   VPC 专有网络                      │
│                                                   │
│  ┌──────────────┐      ┌──────────────────────┐ │
│  │  公共子网     │      │      私有子网         │ │
│  │  (公网可访问) │      │   (仅内网可访问)      │ │
│  │              │      │                      │ │
│  │  ┌────────┐  │      │  ┌────────┐ ┌──────┐ │ │
│  │  │ Web    │  │◄────►│  │ MySQL  │ │Redis │ │ │
│  │  │ 服务器  │  │ 内网 │  │ 数据库 │ │缓存 │ │ │
│  │  └────────┘  │      │  └────────┘ └──────┘ │ │
│  └──────────────┘      └──────────────────────┘ │
│                                                   │
└──────────────────────────────────────────────────┘

8.2 NAT 网关:让内网服务器安全上网

前面说数据库应该放在私有子网(不暴露到公网),但私有子网的服务器有一个问题:它无法直接访问互联网。比如你要更新系统补丁、下载 npm 包,都需要访问外网。

NAT 网关就是来解决这个问题的:

  • 私有子网的服务器 → 发起外网请求 → NAT 网关 → 用 NAT 的公网 IP 访问外网
  • 外网无法主动访问私有子网的服务器(单向出网)

创建 NAT 网关:

  1. 阿里云控制台 → 搜索「NAT」→ 进入「NAT 网关」
  2. 点击「创建 NAT 网关」:
    • 地域:和 ECS 相同
    • 专有网络:选择你的 VPC
      n - 交换机:选择私有子网的交换机
    • 规格:小型(够用)
  3. 创建后,配置 SNAT 规则:
    • 选择「SNAT 列表」→ 创建 SNAT 条目
    • 交换机:选择私有子网
    • 公网 IP:选择你的 EIP 或 NAT 网关自带的 IP

8.3 弹性公网 IP:随时换机器不换 IP

前面创建 ECS 时,阿里云会分配一个「普通公网 IP」,这个 IP 和 ECS 绑定在一起。如果 ECS 释放了,IP 就没了。

弹性公网 IP(EIP) 的优势:

  • 可以独立购买和释放
  • 可以随时绑定到任意 ECS 上
  • 换服务器时,EIP 迁移到新服务器,域名解析不用改

场景举例:你的服务器被攻击了,需要快速切换到备用服务器:

  • 有 EIP:解绑 → 绑定到新服务器 → 10 秒完成,用户无感知
  • 没有 EIP:释放旧服务器 → 买新服务器 → 新 IP → 改 DNS 解析 → 等待生效 → 30 分钟

创建 EIP:

  1. 阿里云控制台 → 搜索「弹性公网 IP」
  2. 点击「创建弹性公网 IP」→ 选择地域 → 购买
  3. 点击「绑定资源」→ 选择你的 ECS 实例

8.4 消息队列 MNS:让系统松耦合

当你的业务复杂了,比如用户下单后,需要同时做:扣库存、发短信、发邮件、加积分……如果全部同步处理,用户要等待所有操作完成才能看到「下单成功」。

MNS(消息队列) 的作用:

  • 订单系统发一条消息到队列 → 立即返回「下单成功」给用户
  • 库存系统、短信系统、积分系统各自从队列取消息,异步处理
  • 即使某个系统慢了或挂了,也不影响用户下单

小白阶段还用不到 MNS,但要知道这个思路。等你的系统有多个服务需要协作时,再引入消息队列。


九、总结:你的云服务器全景图

经过前面的步骤,你已经从零搭建了一个完整的网站架构。让我们画一张全景图,看看你拥有了什么:

                           用户浏览器
                               │
                               ▼
                    ┌────────────────────┐
                    │   域名 yourname.com  │  ← 你在阿里云注册的域名
                    │   DNS 解析 → 公网 IP  │  ← 云解析 DNS
                    └──────────┬─────────┘
                               │
                    ┌──────────▼──────────┐
                    │    负载均衡 SLB      │  ← 可选,多台服务器时才需要
                    │  (流量分发入口)     │
                    └──────────┬──────────┘
                               │
                    ┌──────────▼──────────┐
                    │   Nginx Web 服务器   │  ← 你的 ECS 云服务器
                    │   (处理 HTTP 请求)  │
                    │   - 80 端口 (HTTP)   │
                    │   - 443 端口 (HTTPS) │  ← SSL 证书加密
                    └──────────┬──────────┘
                               │
              ┌────────────────┼────────────────┐
              │                │                │
     ┌────────▼─────┐  ┌──────▼──────┐  ┌──────▼──────┐
     │  PHP/Node.js │  │  MySQL 数据库 │  │   静态文件   │
     │   应用代码    │  │  (用户数据)  │  │   (OSS)     │
     │  /var/www    │  │  本地或 RDS   │  │ 图片/视频/JS │
     └──────────────┘  └─────────────┘  └─────────────┘
              │                │                │
              └────────────────┼────────────────┘
                               │
                    ┌──────────▼──────────┐
                    │      日志服务        │  ← SLS(进阶使用)
                    │   收集所有日志       │
                    │   便于排查问题       │
                    └─────────────────────┘

你已经学会的技能清单

技能掌握程度
选购和创建 ECS 云服务器✅ 已掌握
用 SSH 远程登录 Linux✅ 已掌握
配置安全组防火墙✅ 已掌握
创建 RAM 用户管理权限✅ 已掌握
安装 LNMP 环境✅ 已掌握
部署网站到服务器✅ 已掌握
注册域名和 DNS 解析✅ 已掌握
申请和配置 SSL 证书✅ 已掌握
使用 OSS 存储文件✅ 已掌握
创建快照备份✅ 已掌握
排查网站故障✅ 已掌握
VPC/NAT/EIP 进阶架构📖 已了解,待实践
消息队列 MNS📖 已了解,待实践

推荐的学习路径

阶段1(现在):跑通第一个网站
├─ 你已经完成了!🎉
├─ 建议:部署一个个人博客(WordPress/Hexo/VuePress)
└─ 目标:理解完整的 Web 部署流程

阶段2(1-2 周后):优化和监控
├─ 学习:配置监控告警(云监控)
├─ 学习:日志服务 SLS 收集日志
├─ 学习:CDN 加速静态资源
└─ 目标:网站稳定运行,出问题能及时发现

阶段3(1-2 月后):高可用和自动化
├─ 学习:负载均衡 + 多台服务器
├─ 学习:自动伸缩(根据流量自动增减服务器)
├─ 学习:CI/CD 自动部署(GitHub Actions + 阿里云)
└─ 目标:系统能扛住流量高峰,部署自动化

阶段4(3-6 月后):云原生和架构进阶
├─ 学习:Docker 容器化部署
├─ 学习:Kubernetes 容器编排
├─ 学习:微服务架构拆分
└─ 目标:掌握企业级云架构设计能力

最小可用架构配置清单(直接照着买)

如果你不知道该怎么选配置,下面这张表是个人博客/学习项目/小型网站的「最小可用」组合,直接照着选就行:

组件推荐配置月费用参考说明
ECS 云服务器2 核 2GB 或 2 核 4GB30-80 元/月入门够用,支持在线升级
操作系统AlmaLinux 9 / Ubuntu 22.04 LTS免费稳定、社区活跃、教程多
公网带宽1Mbps 固定带宽23 元/月文字博客够 20-30 人同时访问
系统盘40GB SSD 云盘包含在实例费用中系统和应用代码
数据盘100GB SSD 云盘(可选)35 元/月数据库和日志,避免系统盘爆满
Web 服务器Nginx 1.24免费高性能、低资源占用
数据库MySQL 8.0(本地)免费数据量 < 10GB 时本地足够
域名.com / .cn 域名30-70 元/年让用户记住你的网站
SSL 证书阿里云免费证书免费每年可申请 20 张,到期更换
备份策略每周自动快照 + 手动快照快照费用按量数据无价,务必备份
对象存储 OSS标准存储 50GB约 5 元/月图片、视频、备份文件
安全组仅开放 22/80/443免费其他端口全部关闭
监控告警云监控基础版免费CPU > 80% 或磁盘 > 85% 时告警

最小可用 ≠ 最低配。上面的配置是「刚好能稳定运行个人网站」的底线,在此基础上,流量大了随时升级,阿里云支持在线变配(不用关机)。


十、附录:常见问题速查

Q1:服务器登录不上怎么办?

# 检查1:安全组是否允许 22 端口
# 检查2:服务器是否运行(控制台看状态)
# 检查3:密钥文件权限是否正确(chmod 400)
# 检查4:网络是否通(ping 公网 IP)
# 检查5:用阿里云控制台的「VNC 远程连接」登录(不需要 SSH)

Q2:网站访问慢怎么办?

  • 升级带宽(1Mbps → 5Mbps)
  • 图片放到 OSS + CDN
  • 开启 Nginx Gzip 压缩
  • 用 top 命令查看 CPU 是否 100%
  • 用 free -h 查看内存是否不足

Q3:磁盘满了怎么办?

# 查看哪个目录占空间大
du -sh /* | sort -rh | head -10

# 清理日志
echo "" > /var/log/nginx/access.log

# 清理 yum 缓存
yum clean all

# 删除旧的内核(保留当前和上一个)
pkg list installed kernel | tail -n +3

Q4:忘记数据库密码怎么办?

# 停止 MySQL
systemctl stop mysqld

# 跳过权限启动
mysqld_safe --skip-grant-tables &

# 登录并修改密码
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;
EXIT;

# 重启 MySQL
systemctl restart mysqld

Q5:如何重启服务器?

# 安全重启(推荐)
reboot

# 或者从阿里云控制台 → 实例 → 更多 → 重启

Q6:如何释放服务器(不再使用)?

  1. 确保已备份所有数据(快照 + 文件下载到本地)
  2. ECS 控制台 → 实例 → 更多 → 释放实例
  3. 释放 EIP(如果有)
  4. 释放 OSS Bucket(如果不需要了)
  5. 释放域名(如果不想保留了)

⚠️ 释放后数据不可恢复!确保备份!

Q7:新用户有什么优惠?

  • 阿里云「新用户专享」轻量应用服务器:99 元/年(1核 2GB)
  • 免费 SSL 证书:每年可以免费申请 20 个 DV 证书
  • 免费 OSS 额度:每月 50GB 流量 + 10GB 存储(新用户首年)
  • 免费 CDN 流量:每月 10GB(新用户首年)

Q8:服务器被攻击了怎么办?

  1. 立即修改所有密码(服务器、数据库、阿里云账号)
  2. 检查安全组,关闭不必要的端口
  3. 用 last 命令查看登录记录,发现异常 IP 封禁
  4. 检查系统是否有可疑进程:ps aux | grep -v "[\[\]"
  5. 如果有快照,回滚到攻击前的快照
  6. 开启阿里云「云安全中心」(免费版即可),自动检测漏洞

写在最后:云计算听起来很高大上,但本质上就是「远程租一台电脑」。你不需要懂所有细节,先让第一个网站跑起来,有了信心之后再慢慢深入。最重要的是动手——看一百篇教程不如亲手创建一台服务器。遇到问题就查文档、搜 Google、问社区,每个云计算工程师都是从 ssh root@ip 这一步开始的。

祝你建站顺利!🚀


本文参考:阿里云官方文档、阿里云产品详解指南、CSDN 云服务器入门系列、掘金云计算实战教程

更多推荐