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

摘要:本文面向完全零基础的新手,用通俗易懂的语言和保姆级步骤,带你从注册阿里云账号开始,到选购 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内存
用途 推荐规格 价格参考(包年包月)
个人博客 / 学习 Linux 1核 2GB 或 2核 2GB 99-200 元/年
小型 Web 应用 / 微信小程序后端 2核 4GB 500-800 元/年
中型网站 / 电商系统 2核 8GB 或 4核 8GB 1500-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 9Ubuntu 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 系统默认是 root root
登录方式 你创建时选的 密钥对
密钥文件 你下载的 .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 服务时,需要额外开放端口:

端口 用途 是否需要开放
22 SSH 远程登录 ✅ 必须(但建议限制 IP)
80 HTTP 网站访问 ✅ 必须
443 HTTPS 网站访问 ✅ 必须
3306 MySQL 数据库 ❌ 不要对公网开放!
6379 Redis 缓存 ❌ 不要对公网开放!
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 密码:强烈建议用密钥登录

密码登录的安全隐患:

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

密钥登录的优势:

  • 密钥是一段极长的随机字符串(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(日志服务) 可以帮你:

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

小白简化方案:先不用 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 核 4GB 30-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 云服务器入门系列、掘金云计算实战教程

Logo

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

更多推荐