跳过正文

Ubuntu 从零配置 Cloudflare CDN 服务

· loading · loading ·
lixxix
作者
lixxix
关注科技,编程改变生活!
本文记录在 Ubuntu 服务器上从零搭建 Cloudflare CDN 的完整流程:先用 Nginx 托管静态资源作为源站,再把域名接入 Cloudflare。如果源站没有配置 SSL 证书,可以借助 Cloudflare 的灵活(Flexible)模式让 HTTPS 直接生效,省去自行管理证书的麻烦。

1. 服务器安装 Nginx
#

在 Ubuntu 终端依次执行以下命令,安装并启动 Nginx:

sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

2. 配置 Nginx
#

新增一个域名指向的配置文件,在 /etc/nginx/sites-enabled 目录下创建 cdn.xxx.com

sudo nano /etc/nginx/sites-enabled/cdn.xxx.com

写入如下基础配置:

server {
    listen 80;
    server_name cdn.xxx.com [你的本机ip]; # 你的资源域名

    root /var/www/[具体路径]; # 资源存放的目录
    index index.html;

    location / {
        try_files $uri $uri/ =404;

        # 允许跨域(如果你的静态资源需要被其他网站调用,这很重要)
        add_header Access-Control-Allow-Origin *;
    }
}

检查配置语法并重载,使其生效:

sudo nginx -t                 # 检查配置语法
sudo systemctl reload nginx   # 平滑重载,不会中断现有连接
服务器的 IP 必须是公网 IP,否则 Cloudflare 将无法回源连接到你的服务器获取资源。

3. 配置 Cloudflare
#

3.1 添加域名指向
#

在 Cloudflare 添加域名 A 记录
在 Cloudflare 中添加域名,填写服务器 IP,并确保代理状态为「已代理」(橙色云朵)

需要填写服务器的 IP 地址,并保证代理状态为已代理(DNS 记录旁的云朵图标显示为橙色)。

4. 调整 SSL/TLS 模式
#

如果你的 Nginx 没有配置 SSL 证书,则需要调整 Cloudflare 的 SSL/TLS 模式。进入 SSL/TLS → 概述,点击配置并选择**灵活(Flexible)**模式,这样 Cloudflare 就能正常回源获取资源了。

灵活模式(Flexible)
#

将 Cloudflare SSL/TLS 模式调整为灵活
将 Cloudflare SSL/TLS 模式调整为灵活(Flexible)

灵活模式下,浏览器与 Cloudflare 之间走 HTTPS(由 Cloudflare 提供证书),而 Cloudflare 与源站之间仍走 HTTP,因此源站无需自行申请 SSL 证书即可对外提供 HTTPS 服务。


总结
#

搭建整套 CDN 加速服务的步骤可以归纳为:

  1. 服务器安装 Nginx,配置一个静态资源站点;
  2. 在 Cloudflare 添加域名,确保代理状态为「已代理」;
  3. 若源站无 SSL,将 SSL/TLS 模式设为「灵活」即可直接启用 HTTPS。

关键在于理解 Cloudflare 的代理与 SSL 模式——灵活模式下 Cloudflare 充当 HTTPS 网关,源站保持 HTTP 即可对外提供安全访问。