独立服务器源站 CDN 部署教程

本文介绍了在独立服务器源站上部署CDN的完整教程,涵盖源站配置、CDN服务商接入(如Cloudflare、阿里云CDN等)、DNS解析设置、缓存规则配置及HTTPS证书部署等关键步骤,强调源站安全加固与回源优化,帮助用户提升网站访问速度、降低带宽压力并增强抗攻击能力。

独立服务器源站 + CDN 一键部署实战教程(Linux+Nginx+Cloudflare)

在构建高性能、高可用的网站或应用时,“独立服务器源站 + CDN”已成为主流架构:源站负责内容生成与动态逻辑,CDN承担静态加速、缓存分发与安全防护,本文以真实生产环境为蓝本,提供一套轻量、可复用、零商业依赖的部署方案——全程基于 Linux(Ubuntu 22.04)、Nginx 和免费版 Cloudflare CDN,步骤清晰、命令可复制,5分钟完成核心配置。

✅ 前提准备

  1. 一台已备案(国内)或境外(如香港/新加坡)的独立云服务器(推荐最低2C4G,带公网IP);
  2. 已注册 Cloudflare 账号,并将域名(如 example.com)接入其DNS管理;
  3. 域名解析已切换至 Cloudflare(橙色云朵图标亮起,表示已代理)。

🔧 第一步:源站基础加固与Nginx配置
登录服务器,更新系统并安装必要组件:

sudo apt update && sudo apt upgrade -y  
sudo apt install nginx curl gnupg2 -y  

创建专属站点目录并写入测试页:

sudo mkdir -p /var/www/example.com  
echo "<h1>✅ 源站在线 | $(hostname) @ $(date)</h1>" | sudo tee /var/www/example.com/index.html  

配置 Nginx 站点(/etc/nginx/sites-available/example.com):

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html;
    # 强制HTTPS(后续启用SSL后生效)
    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    }
    # 关键:暴露真实客户端IP(CDN回源必备)
    set_real_ip_from 173.245.48.0/20;   # Cloudflare IPv4段(实际请参考官方最新列表)
    set_real_ip_from 103.21.244.0/22;
    real_ip_header CF-Connecting-IP;
    real_ip_recursive on;
    # 静态资源缓存头(指导CDN缓存策略)
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}

启用站点并重启:

sudo ln -sf /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/  
sudo nginx -t && sudo systemctl reload nginx  

🔒 第二步:启用免费HTTPS(Let’s Encrypt)
安装 Certbot:

sudo apt install certbot python3-certbot-nginx -y  
sudo certbot --nginx -d example.com -d www.example.com --non-interactive --agree-tos -m admin@example.com  

Certbot 自动修改 Nginx 配置并启用 HTTPS,同时配置自动续期(systemd timer已内置)。

🌐 第三步:CDN层关键设置(Cloudflare)

  1. DNS设置:确保 A 记录指向你的服务器公网IP,状态为“Proxied”(橙色云朵);
  2. SSL/TLS → Overview:选择“Full (strict)”模式(要求源站有有效证书);
  3. Caching → Configuration
     - 缓存级别设为 “Aggressive”;
     - 启用 “Always Use HTTPS” 和 “Automatic Minify”(JS/CSS/HTML);
  4. Rules → Page Rules(可选):添加规则 → 缓存等级:Cache Everything(仅适用于纯静态站;含动态内容请按路径精细化配置);
  5. Firewall → WAF:启用默认规则集,屏蔽常见攻击(SQLi、XSS等)。

📌 验证与调试技巧

  • 执行 curl -I https://example.com,检查响应头中 cf-cache-status: HIT(CDN命中)或 MISS(首次回源);
  • 查看 Nginx 日志:sudo tail -f /var/log/nginx/access.log,确认 remote_addr 显示的是 Cloudflare IP,而 http_x_forwarded_for 包含真实用户IP;
  • 使用 https://www.cloudflare.com/cdn-cgi/trace 验证当前请求是否经由 Cloudflare 中转。

💡 进阶提示(非必需但强烈推荐)

  • 源站防火墙:用 ufw 仅开放 80/443 和 SSH 端口,其余全部拒绝;
  • 回源白名单:Cloudflare 提供 IP 段列表(https://www.cloudflare.com/ips/),可在 Nginx 或云服务商安全组中限制仅允许其IP访问源站 443 端口; 加速:若需加速 API,可在 Cloudflare Workers 中编写简单路由逻辑,或使用其“Cache API”按需缓存。

全文共约1120字,本方案摒弃复杂中间件(如Varnish),专注最小可行架构——独立服务器稳如磐石,CDN智能分流,兼顾性能、安全与可维护性,无需付费插件,不依赖第三方SaaS控制台,所有操作皆可通过SSH与浏览器完成,部署即生效,是中小项目快速上线的理想范式。(完)