1.
目标与准备工作
目标:把网站静态资源托管在
香港原生IP服务器(作为Origin),并通过CDN在全球/大中华区加速分发,兼顾访客体验与SEO。小分段:1) 确认需加速的资源(/static, /assets, /img);2) 准备香港云/独服并确保IP归属为香港;3) 选择CDN厂商(例如阿里云CDN、腾讯云CDN、Cloudflare、Akamai等)。
2.
在香港服务器上搭建Origin(以nginx为例)
小分段:1) 安装nginx:apt-get/yum install nginx;2) 建目录并上传资源到 /var/www/static;3) nginx配置示例(放在 /etc/nginx/sites-available/default):
server { listen 80; server_name origin.example.com; root /var/www; location /static/ { expires 30d; add_header Cache-Control "public, max-age=2592000"; try_files $uri $uri/ =404; } location ~* \.(js|css|png|jpg|jpeg|gif|svg|woff2)$ { gzip on; gzip_types text/css application/javascript application/json image/svg+xml; brotli on; brotli_types text/css application/javascript application/json image/svg+xml; } }
4) 重载:nginx -t && systemctl reload nginx。
3.
验证香港原生IP与地理位置
小分段:1) 查询IP:curl -s https://ipinfo.io/你的IP;2) 使用geoip命令或网站(geoiplookup、ip2location、ipinfo)确认归属地为Hong Kong;3) 若不是香港IP,联系云厂商开通香港节点或申请香港IP池并部署。
4.
CDN配置 - 基本流程(以“回源拉取/Origin Pull”为主)
小分段:1) 在CDN控制台新增域名 cdn.example.com 并填写回源地址 origin.example.com;2) 选择回源协议(http/https),若使用https请部署证书或启用CDN证书;3) 设置缓存规则:/static/* 缓存 30 天,query string 按需处理(通常忽略);4) 设置回源Host为 origin.example.com,开启Origin Shield/回源保护(如有)。
5.
Header与缓存策略优化
小分段:1) 在Origin设置 Cache-Control、Expires 并移除不必要的 Set-Cookie;2) 使用长缓存+版本号策略(文件名含 hash,如 app.abc123.js);3) 对动态接口禁用CDN缓存,静态资源走CDN缓存;4) nginx可加配置:add_header Vary Accept-Encoding; etag off;(若使用CDN ETag冲突可选择关闭)。
6.
压缩、图片与字体优化
小分段:1) 启用 gzip 与 brotli(优先 brotli),检查CDN是否支持边缘压缩;2) 使用WebP/AVIF并在CDN边缘做内容协商(条件转码或使用不同路径);3) 对字体设置 Access-Control-Allow-Origin "*" 并缓存较长时间;4) 开启 HTTP/2 或 HTTP/3(QUIC)以提高并发加载效率。
7.
DNS切换与渐进式上线
小分段:1) 在DNS中为静态域名设置CNAME指向CDN提供的域名,TTL先设置短(60s)便于回滚;2) 观察日志,逐步将流量切到CDN;3) 测试回退:直接访问 origin IP + Host 头检查响应;4) 最终把TTL调长(5-60 分钟或更久)以减少DNS查询。
8.
测试与验证命令清单
小分段:1) 检查DNS:dig +short cdn.example.com; 2) 验证回源头:curl -I -H "Host: cdn.example.com" https://CDN边缘地址/静态路径; 3) 检查压缩:curl -svo /dev/null -H "Accept-Encoding: br" https://cdn.example.com/static/app.js; 4) 路由检查:traceroute cdn.example.com 或 mtr。使用WebPageTest和Lighthouse做性能审核。
9.
监控、缓存清理与常见问题排查
小分段:1) 配置CDN日志或接入SaaS监控(Grafana/ELK)观察边缘命中率与回源流量;2) 缓存清理:使用CDN提供的Purge API(示例:curl -X POST "https://api.cdn.com/purge" -d '{"paths":["/static/app.js"]}' -H "Authorization: Bearer TOKEN");3) 常见问题:缓存不命中(检查Cache-Control、cookie, query string);回源403/401(检查回源鉴权或防火墙IP白名单)。
10.
问:为什么要使用香港原生IP作为Origin,而不直接用国外机房或纯CDN?
小分段:答:香港原生IP在大中华区(尤其港澳台、内地南方)访问延迟低,回源速度快,便于合规与备案管理;作为Origin可确保回源稳定性、可控性与对资源的终极控制,避免纯依赖CDN带来的回源不可控或数据主权问题。
11.
问:上线后如何判断CDN是否真正生效并带来加速?
小分段:答:看边缘命中率(CDN控制台或日志),使用curl -I 检查响应头如 x-cache/hit,测量首字节时间(TTFB)和整体加载时间在不同地域对比(Lighthouse/WebPageTest),以及回源流量显著下降表示缓存生效。
12.
问:切换过程中遇到缓存不一致或频繁回源,如何排查?
小分段:答:排查步骤:1) 检查响应头 Cache-Control/Expires/Set-Cookie;2) 确认CDN缓存键(是否包含query string、cookie);3) 检查文件版本策略(是否每次更新都改名);4) 查看CDN边缘返回的 x-cache 信息并开启详细日志,必要时使用短TTL和手动Purge配合回滚。
来源:香港原生ip服务器 与CDN结合优化静态资源分发的案例分享