1.1 首先明确用户分布:统计访问来源(香港、本地、内地、东南亚),使用GA/Cloudflare/日志导出,生成前端请求IP分布图。
1.2 判断延迟与合规需求:若目标主要在香港/粤港澳,优先考虑香港节点;对大陆用户需考虑备案、线路和GFW影响。
2.1 Anycast 优点:单IP多点部署,DNS解析简单,适合静态资源。操作:购买支持Anycast的CDN服务并配置域名CNAME到CDN提供的Anycast域名。
2.2 GeoDNS 优点:可按地理策略分配不同后端(香港/内地/海外)。操作:在DNS管理控制台添加地理策略,示例:位于香港网段返回 hongkong.example.cdn,而中国内地返回 china.example.cdn。
3.1 缓存策略:设置Cache-Control和Expires头,静态资源(js/css/img)max-age=31536000,图片用指纹URL;动态页面设置短TTL+Stale-while-revalidate。
3.2 回源选择:若回源在香港机房,配置回源地址为私网或香港公网IP;若回源在内地,开启跨境优化(TCP优化、长连接),并在CDN控制台启用回源证书验证。
4.1 层级架构:外层使用全球/区域负载均衡(DNS/Anycast LB),内层使用香港机房的本地负载均衡(L4/L7),示例:Global LB -> Hong Kong L7 HAProxy。
4.2 配置建议:在香港部署至少两个可用区的LB,后端指向多台Origin或容器实例,启用健康检查(HTTP 200)和权重路由。
5.1 HAProxy L7示例片段:
frontend http-in
bind *:80
default_backend app_hk
backend app_hk
balance roundrobin
server hk1 10.0.1.10:80 check
server hk2 10.0.1.11:80 check
5.2 NGINX反向代理缓存示例:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=cache_zone:200m;
server {
location / {
proxy_cache cache_zone;
proxy_pass http://backend;
add_header X-Cache $upstream_cache_status;
}
}
6.1 健康检查:配置HTTP GET /health返回200;在云控制台设置探测间隔10s,失败阈值3次;本地LB增加TCP和HTTP双重探测。
6.2 会话保持:如需要sticky session,采用基于cookie的持久化或使用共享session(Redis/Memcached)。示例HAProxy使用 cookie JSESSIONID insert nocache。
6.3 SSL证书:在CDN边缘终止HTTPS(上传公钥/私钥或使用托管证书);若回源需要HTTPS,配置SNI并上传回源证书,示例:curl --resolve your.domain:443:1.2.3.4 https://your.domain -k
7.1 A: Anycast通过BGP将单一IP广告到多个香港及周边POP,用户流量自动就近入站,减少DNS解析跳转与TCP握手延迟;验证方法:从不同区域运行traceroute和mtr,检查到达最近POP的跳数和延迟。
8.1 A: 步骤:1) 在非高峰期关闭香港一个后端实例或模拟健康检查失败;2) 监控LB控制台或Prometheus中backend_up指标是否降为0;3) 从外部用curl并加上-XGET和--resolve检查是否被路由到备用节点;4) 恢复实例并验证流量回切。
9.1 A: 建议:1) 采用GeoDNS或多域名策略区分大陆与香港访问;2) 香港节点对本地用户启用Anycast/低TTL;3) 对大陆用户使用备案且优化线路的回源;4) 统一日志与监控,设置不同的缓存策略和安全策略(WAF、速率限制),并定期用ab/jmeter进行压力测试验证。