VPS网站加速方案:CDN、缓存与线路优化

网站慢是什么原因

在折腾加速之前,先搞清楚你的网站到底慢在哪里。网站加载慢通常有三个原因:

  1. 网络延迟高:服务器到用户之间的物理距离太远或线路质量差
  2. 服务器响应慢:CPU/内存不够、数据库查询慢、PHP执行慢
  3. 前端资源大:图片没优化、JS/CSS太多、没有启用压缩

我的经验是,大多数海外VPS网站对国内用户慢,原因80%在网络延迟,而不是服务器性能不行。

方案一:CDN加速

CDN(内容分发网络)是最有效的加速方式。原理是把你的网站内容缓存到全球多个节点,用户访问时从最近的节点获取内容。

CloudFlare(推荐)

CloudFlare是最流行的免费CDN,接入很简单:

  1. 注册CloudFlare账号
  2. 添加你的域名
  3. 按提示修改域名的NS记录
  4. 等待DNS生效(通常几分钟到几小时)
# 修改前
NS: ns1.原来的dns服务商.com
NS: ns2.原来的dns服务商.com

# 修改后
NS: xxx.ns.cloudflare.com
NS: yyy.ns.cloudflare.com

CloudFlare加速效果

我用一个WordPress站测试的数据:

指标无CDNCloudFlare免费版提升
TTFB(国内)520ms280ms46%
全页加载4.2s1.8s57%
图片加载2.1s0.6s71%

效果还是很明显的,特别是图片加载速度提升最大。

CloudFlare优化设置

免费版也有不少可以优化的设置:

设置项推荐值作用
SSL/TLSFull (Strict)全程HTTPS
Auto Minify开启JS/CSS/HTML压缩代码
Brotli开启更好的压缩
Always Online开启源站挂了也能访问
Browser Cache TTL4小时浏览器缓存时间
Rocket Loader试试看JS异步加载(可能出bug)

其他CDN选择

CDN优点缺点价格
CloudFlare免费、易用免费版节点不在国内免费-$20/月
Fastly性能好价格贵按量付费
BunnyCDN便宜节点少$1/月起

方案二:服务器端缓存

CDN解决了网络层面的问题,服务器端缓存解决的是”生成页面太慢”的问题。

Redis对象缓存

WordPress最大的性能瓶颈是数据库查询。安装Redis后可以把数据库查询结果缓存到内存里:

# 安装Redis
apt install redis-server -y

# 配置Redis
systemctl enable redis-server
systemctl start redis

然后在WordPress里安装Redis Object Cache插件并启用。

效果:

指标无Redis有Redis提升
数据库查询次数78次12次-85%
页面生成时间320ms45ms-86%

Nginx FastCGI缓存

如果你用的是Nginx + PHP-FPM,可以开启FastCGI缓存,直接把生成好的HTML页面缓存起来:

# nginx.conf中添加
fastcgi_cache_path /tmp/nginx-cache levels=1:2
    keys_zone=WORDPRESS:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

# 在server块中
location ~ \.php$ {
    fastcgi_cache WORDPRESS;
    fastcgi_cache_valid 200 60m;
    fastcgi_cache_use_stale error timeout;
}

这个比Redis更激进——直接跳过PHP执行,响应时间能从几百毫秒降到几毫秒。

静态化

最极端的缓存方案是直接把WordPress生成为静态HTML文件。插件如WP Super Cache或W3 Total Cache都可以做到。

方案三:线路优化

如果你的VPS走的是普通线路到国内,除了换CN2 GIA之外还有一些优化方法。

BBR拥塞控制

BBR是Google开发的TCP拥塞控制算法,可以显著提升跨洲际的网络传输效率:

# 开启BBR(Linux内核4.9+)
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

# 验证
sysctl net.ipv4.tcp_congestion_control
# 应该输出: net.ipv4.tcp_congestion_control = bbr

BBR的效果在丢包环境下特别明显。我测试的数据:

场景无BBR有BBR提升
正常网络45 Mbps52 Mbps+15%
1%丢包12 Mbps38 Mbps+217%
5%丢包3 Mbps18 Mbps+500%

在晚高峰丢包严重的时候BBR的提升尤其大。

换更好的线路

这是最根本的解决方案,但也最贵。普通线路→CN2 GIA的体验提升是碾压级的。详细对比见CN2 GIA线路对比测试

方案四:前端优化

图片优化

图片通常占网页体积的60-70%,优化好图片效果立竿见影:

# 安装WebP转换工具
apt install webp -y

# 将JPEG转为WebP
cwebp -q 80 input.jpg -o output.webp
格式平均大小质量
JPEG200KB
WebP80KB几乎一样
AVIF50KB几乎一样

WordPress可以用ShortPixel或Imagify插件自动优化上传的图片。

启用Gzip/Brotli压缩

# Nginx开启Gzip
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_min_length 1024;
gzip_comp_level 6;

HTML/CSS/JS启用压缩后体积可以减小60-80%。

懒加载

图片懒加载可以让首屏加载更快:

<img src="image.jpg" loading="lazy" alt="描述">

现代浏览器原生支持loading="lazy"属性。

优化优先级

优先级优化方案效果难度成本
1开启BBR免费
2接入CloudFlare免费
3Redis缓存免费
4图片优化免费
5Nginx缓存免费
6换CN2 GIA极高加钱

建议按这个顺序来,前5个都是免费的,做完了还不满意再考虑换线路。

总结

网站加速不是单一方案能解决的,需要多管齐下。BBR + CDN + 缓存 + 图片优化的组合,通常能把加载时间缩短50-70%。如果还不够就考虑换CN2 GIA线路。

新买的VPS建议先做好安全和基础配置,参考VPS安全初始化指南,然后再开始这些加速优化。想选购合适的VPS可以看建站VPS选购指南