- 首页 >
- 问答 >
-
云计算 >
- Ubuntu LNMP如何集成CDN加速
Ubuntu LNMP如何集成CDN加速
小樊
31
2025-12-29 23:43:54
Ubuntu LNMP集成CDN加速实操指南
一 架构选择与前置准备
- 架构选择
- 公有云CDN:适合大多数网站,按量计费、接入快、覆盖广。
- 自建反向代理缓存:用 Nginx proxy_cache 或 Varnish 在源站前做边缘缓存,适合对可控性与成本有特殊要求的场景。
- 前置检查
- 源站可公网访问,且已配置好 HTTPS/TLS 证书(推荐 TLS1.2+)。
- 源站 Nginx 已编译或支持 ngx_http_realip_module(用于获取真实客户端IP)。
- 若网站部署在 中国大陆,加速域名需先完成 ICP备案,否则无法指向大陆源站提供服务。
二 公有云CDN接入步骤
- 添加加速域名与回源
- 在CDN控制台新增加速域名,业务类型选择 网站类/下载,回源方式选 源站IP或源站域名,回源协议选 HTTP/HTTPS(建议与源站一致),开启 HTTP/2 与 Gzip/Brotli(如支持)。
- 配置HTTPS证书
- 在CDN的 HTTPS配置 上传证书(公钥/私钥),或选择 托管证书;若使用 泛域名证书,可在“域名证书管理”做批量配置。
- 配置缓存规则
- 对静态资源(如 .js/.css/.png/.jpg/.woff2)设置较长缓存时间(如 30天),对 HTML 与 API 设置较短或不缓存,并开启 忽略查询字符串 以提升命中率。
- 配置回源与访问控制
- 回源 Host 头填写源站域名;按需开启 Range回源、回源跟随301/302、回源超时、回源请求头 等;配置 防盗链(Referer黑白名单)、IP黑白名单、带宽/并发限流。
- 配置CNAME解析
- 在域名DNS服务商处为加速域名添加 CNAME 记录,指向CDN分配的 CNAME 值;等待解析生效后,访问将就近命中CDN节点。
三 源站Nginx关键配置
- 获取真实客户端IP(CDN前置时必需)
- 在 http/server 层设置可信CDN网段(以云厂商提供为准),并使用 X-Forwarded-For/X-Real-IP:
- 示例:
- set_real_ip_from 0.0.0.0/0; # 请替换为CDN厂商网段
- real_ip_header X-Forwarded-For;
- real_ip_recursive on;
- 确保Nginx编译时包含 –with-http_realip_module,否则无法正确还原客户端IP。
- 安全与合规
- 关闭目录浏览、限制上传类型与大小、开启 防跨站 与必要的 WAF/ACL 策略(CDN侧亦建议开启对应防护)。
四 验证与常见问题
- 生效验证
- 使用 curl 查看响应头是否命中:curl -I https://your-cdn-domain/static/logo.png,若响应头包含 X-Cache-Status: HIT/MISS(或厂商自定义缓存命中头),表示解析与缓存生效;也可通过实际访问与测速对比前后差异。
- 回源HOST与协议
- 若源站虚拟主机基于域名,回源 Host 必须与源站 server_name 一致;回源协议与端口需与源站监听一致(HTTP/80 或 HTTPS/443)。
- 回源失败排查
- 检查CDN回源地址/端口、源站防火墙与安全组、回源SNI/证书匹配、回源超时设置;查看CDN与源站 访问日志 定位4xx/5xx错误。
- 客户端IP获取异常
- 确认已正确配置 real_ip_header 与 set_real_ip_from 网段;应用日志中打印 X-Forwarded-For 首元素应为真实客户端IP。
- 中国大陆合规
- 加速域名指向 中国大陆 源站前务必完成 ICP备案,否则无法对外提供服务。
五 进阶方案
- 自建边缘缓存(Nginx proxy_cache)
- 在源站前部署 Nginx 作为反向代理,启用 proxy_cache_path/keys_zone,对静态资源设置长缓存,动态请求回源;可按需编译 ngx_cache_purge 模块以便主动清缓存。
- Varnish缓存集群
- 使用 Varnish 作为HTTP加速器,配置 backend/健康检查/负载均衡,在 VCL 中按域名/路径分流与策略控制,适合更高并发与更细粒度缓存策略的场景。