1️⃣ 环境准备

  • 操作系统:Debian/Ubuntu

  • VPS:优化线路

  • Nginx:已安装

  • Certbot:用于获取 Let’s Encrypt 证书

  • Cloudflare:加速域名需开启小云朵(代理)

安装必要工具:

sudo apt update
sudo apt install nginx certbot python3-certbot-nginx -y

2️⃣ 配置全局缓存(只需一次)

编辑 /etc/nginx/nginx.confhttp { ... } 块,加入:

http {
    ...

    # 静态资源缓存
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m max_size=1g;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
  • my_cache 是缓存名称,多个站点共享

  • 缓存存放路径 /var/cache/nginx

  • 可以根据 VPS 空间调整 max_size


3️⃣ 新建站点配置文件

路径:/etc/nginx/sites-available/<加速域名>.conf

模板(可直接复制):

# 301 重定向 HTTP -> HTTPS
server {
    listen 80;
    server_name <加速域名>;

    return 301 https://$host$request_uri;
}

# HTTPS 反代
server {
    listen 443 ssl http2;
    server_name <加速域名>;

    ssl_certificate /etc/letsencrypt/live/<加速域名>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<加速域名>/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # 普通请求反代
    location / {
        proxy_pass https://<源站域名>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_connect_timeout 60s;
        proxy_send_timeout 120s;
        proxy_read_timeout 120s;

        proxy_set_header Accept-Encoding "";
        add_header X-Cache-Status $upstream_cache_status;
    }

    # 静态资源缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|ttf|svg)$ {
        proxy_pass https://<源站域名>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_cache my_cache;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404 1m;
        proxy_buffering on;

        proxy_connect_timeout 60s;
        proxy_send_timeout 120s;
        proxy_read_timeout 120s;

        add_header X-Cache-Status $upstream_cache_status;
    }
}

替换两处

  • <加速域名> → 你访问给用户的加速域名(必须开小云朵)

  • <源站域名> → 实际存放内容的源站域名(无需开启 Cloudflare)


4️⃣ 启用站点

sudo ln -s /etc/nginx/sites-available/<加速域名>.conf /etc/nginx/sites-enabled/<加速域名>.conf

删除默认站点,防止显示 Nginx 欢迎页:

sudo rm /etc/nginx/sites-enabled/default

5️⃣ 获取 HTTPS 证书

sudo certbot --nginx -d <加速域名>
  • Certbot 会自动配置证书

  • 证书有效期 90 天,自动续期


6️⃣ 测试配置并重载 Nginx

sudo nginx -t
sudo systemctl reload nginx

7️⃣ 测试加速效果

7.1 测试静态资源缓存

curl -I https://<加速域名>/images/logo.png
  • 查看响应头 X-Cache-Status

    • HIT → 走缓存

    • MISS → 第一次访问,缓存被填充

7.2 浏览器开发者工具

  • 打开 Network 标签

  • 刷新页面,观察静态资源加载速度

  • 检查缓存是否生效


8️⃣ 添加其他网站

  • 重复 第 3 步到第 6 步

  • 只需新建配置文件,修改 <加速域名><源站域名>

  • 其他配置保持一致即可

⚠️ 注意:proxy_cache_path 只定义一次,不要在每个站点配置里重复


9️⃣ 常见问题

问题

原因

解决方法

打开网站显示 Nginx 欢迎页

默认站点 default 先匹配

删除 /etc/nginx/sites-enabled/default

Ping 没降低

Ping 测试不等于网页加速

看静态资源加载速度和缓存命中

curl 测试 404 / BYPASS

路径不存在或源站禁止缓存

测试真实存在资源,并检查 Nginx proxy_cache 配置

HTTPS 报错

证书不存在或路径错误

Certbot 获取证书,并确保路径 /etc/letsencrypt/live/<加速域名>/ 正确


✅ 这样你就能用 CN2 VPS + Cloudflare 给多站点加速,支持缓存和 HTTPS。