本文约 4,204 字,预计阅读 11 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:买贵了浪费,买便宜了网站天天崩
新手建站最常见的两个极端:一是被”2 核 4G 只要 99 元一年”吸引,买了虚拟主机,装上 WordPress 加几个插件后后台卡顿,访问高峰期直接 502;二是听人说”上云才是正经”,买了 4 核 8G 的 ECS,每月两三百块,日访问量只有几十个人,资源利用率不到 5%。
服务器选型没有标准答案,但有一个可计算的起点:看你的日均 PV、单页体积、峰值并发。这三个数字能推出你需要的带宽与内存,再叠加”是否需要独占系统权限””是否有运维能力”两个约束条件,选型结果基本就确定了。
原理分析:三类产品的本质差异
| 维度 | 虚拟主机 | 轻量应用服务器 | ECS 云服务器 |
|---|---|---|---|
| 本质 | 共享一台机器的磁盘空间 | 独享一台轻量虚拟机 | 完整 IaaS 云主机 |
| root 权限 | 无 | 有 | 有 |
| 资源独享 | 否,CPU/内存共享 | 是(但 CPU 常有基准性能限制) | 是 |
| 可装软件 | 仅限面板预置 | 自由安装 | 自由安装 |
| 峰值带宽 | 共享,常有限制 | 峰值带宽(如 3–12 Mbps) | 按带宽或流量计费,可选更高 |
| 典型月费 | 3–30 元 | 24–100 元 | 100–1000+ 元 |
| 运维要求 | 几乎为零 | 会 Linux 基础命令 | 需要系统运维能力 |
| 弹性扩容 | 只能换套餐 | 需停机升级配置 | 支持在线升配、挂载云盘、负载均衡 |
| 适合场景 | 纯展示型单页、企业名片站 | 个人博客、中小企业官网、小型外贸站 | 电商、高并发、多站点、需定制环境 |
关键差异点在于 CPU 性能限制。 轻量应用服务器虽然”独享”,但部分厂商的轻量机型采用 CPU 积分或基准性能机制(例如腾讯云轻量的”CPU 峰值性能”、阿里云突发性能实例 t 系列的 CPU 积分),长时间高负载会被限频。日访问量稳定的站点不受影响,但如果有爬虫频繁抓取或跑定时任务,可能出现莫名的卡顿。
内存是 WordPress 最容易撞上的天花板。 一个干净的 WordPress + Nginx + PHP-FPM + MySQL,空闲状态约占 600 MB–900 MB 内存;开启对象缓存(Redis)再加 100–200 MB;每个 PHP-FPM 子进程按 memory_limit(常见 128 MB 或 256 MB)预留。1 G 内存的机器装完 LEMP 后可用内存所剩无几,MySQL 很容易被 OOM Killer 杀掉,表现为”数据库挂了”。
带宽决定打开速度的上限。 国内服务器的带宽是主要成本项。1 Mbps 的理论下载速度约 128 KB/s,如果一个页面(HTML + CSS + JS + 图片)总大小 1.5 MB,一位访客完整打开需要约 12 秒——这还没算并发。所以国内站必须上 CDN,把静态资源卸载到 CDN 上,源站只传输动态 HTML。
保姆级实操:按你的实际数据算出配置
步骤 1:估算日均 PV 与峰值并发。 新站没有数据就按目标估:企业展示站 500–2000 PV/日,个人博客 1000–5000 PV/日,内容型资讯站 1 万–10 万 PV/日。峰值并发的经验公式:
峰值并发 ≈ 日均 PV × 0.1 ÷ 集中访问小时数 ÷ 3600 × 单用户请求数
举例:日均 10000 PV,其中 10% 集中在 1 小时内,单个访客平均产生 20 个请求(HTML + 若干静态资源,未上 CDN 的情况):
10000 × 0.1 ÷ 1 ÷ 3600 × 20 ≈ 5.6 个并发请求
上了 CDN 后,静态资源不计入源站,源站并发通常降到原来的 1/3 到 1/5。
步骤 2:算带宽需求。 公式:所需带宽(Mbps) = 峰值并发 × 单次响应大小(MB) × 8 ÷ 页面期望加载时间(秒)。若峰值并发 5,动态 HTML 经 gzip 后 60 KB,期望 2 秒内返回:
# 直接在服务器上算,替换你的实际数值
python3 -c "
concurrency = 5 # 峰值并发
page_kb = 60 # 单次响应大小(KB)
target_sec = 2 # 期望响应时间
mbps = concurrency * page_kb * 8 / 1024 / target_sec
print(f'源站所需带宽约 {mbps:.2f} Mbps')
"
结果约 1.17 Mbps,加上留 3 倍余量,3 Mbps 带宽起步比较稳妥。图片多的站点请把图片全部托管到对象存储 + CDN,否则这个数字会翻好几倍。
步骤 3:确定内存。 给出参考表:
| 站点类型 | 日均 PV | 推荐内存 | 推荐 CPU | 建议带宽 |
|---|---|---|---|---|
| 企业名片站/单页 | < 1000 | 1 GB(勉强)/ 2 GB(推荐) | 1 核 | 1–3 Mbps |
| 个人博客/文档站 | 1000–5000 | 2 GB | 1–2 核 | 3–5 Mbps |
| 内容资讯站 | 5000–30000 | 4 GB | 2 核 | 5–10 Mbps + CDN |
| 外贸多语言站 | 5000–20000 | 4 GB | 2 核 | 海外机按流量计费 |
| WooCommerce 商城 | 3000–20000 | 4–8 GB | 2–4 核 | 10 Mbps + CDN |
| 多站点/论坛 | > 30000 | 8 GB+ | 4 核+ | 负载均衡方案 |
步骤 4:确认是否需要 root 权限。 以下需求虚拟主机一律做不了,必须上轻量或 ECS:
- 安装 Redis / Memcached 做对象缓存
- 自定义 Nginx 规则(防盗链、缓存头、反向代理)
- 使用 WP-CLI 命令行管理 WordPress
- 配置 crontab 定时任务(很多定时发布、备份插件依赖它)
- 部署 SSL 证书(部分虚拟主机支持面板申请,但自由度低)
步骤 5:选定具体产品并做压测验证。 买完之后用压测确认真实承载能力,别等上线后才发现:
# 安装压测工具(Ubuntu/Debian)
sudo apt update && sudo apt install -y apache2-utils
# 模拟 50 个并发、共 500 个请求访问首页
ab -n 500 -c 50 https://mimangfei.com/
# 关注输出中的这几个指标
# Requests per second: 每秒处理请求数
# Time per request: 平均响应时间(ms)
# Failed requests: 失败请求数(>0 说明有瓶颈)
# 压测期间另开一个终端观察资源
top -c # 看 CPU 与内存占用
iostat -x 1 # 看磁盘 IO(%util 持续 >80% 说明磁盘是瓶颈)
ss -ant | grep -c ESTAB # 看当前连接数
步骤 6:设置资源水位告警。 在云厂商控制台配置告警规则(CPU > 80% 持续 5 分钟、内存 > 85%、磁盘 > 80%),或者用更轻量的方式自查:
# 查看内存与水位的快速脚本
free -h
df -h /
# 查看最近被 OOM 杀掉的进程(MySQL 被杀能在这里找到证据)
sudo dmesg -T | grep -i "out of memory"
sudo journalctl -k | grep -i "killed process"
常见踩坑
- 1 核 1 G 装 WordPress 加一堆插件。 内存吃满后 MySQL 被 OOM 杀掉,表现为”数据库连接错误”(Error establishing a database connection)。最低可用配置是 2 GB 内存。
- 买了 1 Mbps 带宽还不上 CDN。 单页 2 MB 的站,一位访客要等 16 秒,跳出率极高。国内站一定要配 CDN。
- 被”不限流量”误导。 虚拟主机和部分轻量套餐标称”不限流量”,但实际限制的是带宽或 CPU 使用率,跑满就被限流。
- 系统盘买太小。 WordPress 的
wp-content/uploads会持续增长,40 GB 系统盘两三年就满。要么选更大的云盘,要么早期就把媒体库接对象存储。 - 忽略了备案约束。 轻量和 ECS 在国内地域都需要备案才能用 80/443 端口;短期项目可以选 海外服务器对比 里提到的香港、新加坡地域规避备案周期。
- 续费价远高于首购价。 云厂商新用户首年常有 1–3 折,续费按原价。长期项目建议直接买 3 年或 5 年,或者选择有长期优惠的固定套餐。
- 案例:一家外贸公司买了 8 核 16 G 的 ECS。 他们听信”配置越高越好”,月成本 800 元,实际日均 PV 只有 300。压测后降到 2 核 4 G + CDN,月成本降到 150 元,页面加载速度反而更快——原因不是 CPU,而是他们原来的机器没配 CDN 也没开缓存,静态资源全部走源站。这个案例说明:绝大多数 WordPress 站点的瓶颈在 I/O 与缓存策略,不在 CPU 核数,把预算花在 CDN、Redis 对象缓存和 SSD 上,比堆 CPU 有效得多。
总结
选型可以用一句话概括:展示型单页用虚拟主机,个人博客与中小企业官网用 2 核 4 G 轻量应用服务器,电商、高并发与多站点上 ECS。决策顺序是:先确认要不要 root(要 → 排除虚拟主机)→ 再按 PV 表定内存 → 按并发与页面体积定带宽 → 最后按预算与弹性需求在轻量和 ECS 之间选。买完之后用 ab 压一次,看 Failed requests 是否为 0、iostat 的 %util 是否健康,如果不达标,优先加 CDN 和对象缓存,而不是盲目升配。服务器定下来之后,接下来要处理的是安全与证书,可以参考 网站上线安全基线配置 和 SSL 证书申请与部署 两篇。
