Ubuntu 24.04 如何配置CDN ?
美国、香港服务器
Ubuntu 24.04 如何配置CDN ?
07-04 来源:
一、CDN 平台基础接入(Cloudflare 为例)
注册 Cloudflare,添加你的业务域名,系统自动扫描现有 DNS 解析记录
在域名注册商后台,把域名NS 服务器替换为 Cloudflare 分配的两组 NS 地址
DNS 生效后,开启域名小云朵「橙色代理」(Proxy),正式启用 CDN 加速、DDoS/WAF 防护
核心控制台配置:
SSL/TLS → 概述:选择 严格模式(Strict),源站必须部署可信 SSL 证书
规则 → WAF:开启防护,拦截 SQL 注入、XSS、扫描器恶意请求
缓存规则:静态资源(jpg/png/js/css/woff)设置长缓存;后台、API、动态页面绕过缓存
开启「始终 HTTPS 重定向」,全站强制 HTTPS 访问
二、Ubuntu Nginx 配置:获取访客真实 IP(必配)
CDN 接入后,Nginx 默认只能看到 CDN 节点 IP,必须配置real_ip模块还原真实用户 IP,才能用 GoAccess 日志审计、IP 封禁、防暴力破解。
1. 新建 Cloudflare IP 白名单配置文件
bash
运行
sudo nano /etc/nginx/cloudflare.conf
写入官方 IPv4/IPv6 回源网段:
nginx
# Cloudflare IPv4
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 149.56.0.0/16;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 185.199.108.0/22;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
# Cloudflare IPv6
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;
# 读取真实客户端IP
real_ip_header CF-Connecting-IP;
real_ip_recursive on;
2. 在网站 Nginx 配置中引入该文件
nginx
server {
listen 80;
listen 443 ssl;
server_name 你的域名;
# 引入CDN可信IP配置
include /etc/nginx/cloudflare.conf;
# 日志使用真实访客IP(适配你之前的JSON审计日志)
log_format json_audit escape=json "{"
""time":"$time_iso8601","
""client_ip":"$remote_addr","
""domain":"$host","
""request":"$request","
""status":$status,"
""req_size":$body_bytes_sent,"
""cost":$request_time,"
""referer":"$http_referer","
""ua":"$http_user_agent""
"}";
access_log /var/log/nginx/access.log json_audit;
# 业务站点配置...
}
3. 校验配置并重载 Nginx
bash
运行
sudo nginx -t
sudo systemctl reload nginx
配置成功后,GoAccess、日志中将正常显示用户真实公网 IP,不再是 CDN 节点 IP。
三、源站安全加固:只允许 CDN 回源访问 80/443(防止攻击者绕过 CDN 直接扫源站)
方式 1:Nginx 层面拦截非 CDNIP 访问
在cloudflare.conf末尾追加,只放行 CDN 节点,其他 IP 直接拒绝:
nginx
# 只允许Cloudflare回源,禁止公网直接访问源站
if ($real_ip_forwarded_for !~ "^(103\.21\.244|103\.22\.200|104\.16|172\.64)") {
return 403;
}
方式 2:Ubuntu UFW 防火墙仅放行 CDN 回源 IP(最强防护)
先重置默认策略:拒绝所有入站,仅放行 SSH 运维 + CDN 80/443
bash
运行
sudo ufw default deny incoming
sudo ufw allow 你的SSH自定义端口/tcp comment "运维SSH"
# 批量放行Cloudflare回源IP访问80、443
sudo ufw allow from 103.21.244.0/22 to any port 80,443
sudo ufw allow from 103.22.200.0/22 to any port 80,443
sudo ufw allow from 103.31.4.0/22 to any port 80,443
sudo ufw allow from 104.16.0.0/13 to any port 80,443
sudo ufw allow from 104.24.0.0/14 to any port 80,443
sudo ufw allow from 172.64.0.0/13 to any port 80,443
sudo ufw reload
云安全组同步操作:删除 80/443 全网放行规则,只放行 CDN 官方回源 IP 段,彻底隐藏源站真实 IP,抵御 CC、DDoS、端口扫描攻击。
四、Nginx 静态资源缓存优化(降低源站压力)
在网站server块内添加静态缓存规则,配合 CDN 提升命中率:
nginx
# 静态资源长缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|ttf|svg)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
# 动态页面、后台不缓存
location ~* /(admin|login|api) {
expires -1;
add_header Cache-Control "no-cache, no-store";
}
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快