1.
目标:在菲律宾本地部署原生IP VPS作为源站,并通过CDN边缘节点缓存静态资源与加速动态请求,确保菲律宾用户访问延迟最低、稳定性高。
总体架构:用户→CDN边缘(缓存静态/加速动态)→菲律宾VPS(origin)→应用。DNS通过将主站指向CDN来完成流量分发,部分需要直连的子域可保留A记录指向VPS。
2.
选择要点:确认VPS提供商能分配菲律宾公网IP(非隧道或NAT),机房位于PH或菲律宾直连节点,带宽保证至少10Mbps起。
准备步骤(示例命令以Ubuntu为主): SSH 登录:ssh root@your_ph_vps_ip 更新系统:apt update && apt upgrade -y 创建普通用户并禁用root登录、开启UFW防火墙。
3.
安装Nginx与Certbot:apt install nginx certbot python3-certbot-nginx -y。启动并加入开机:systemctl enable --now nginx。
安全配置:在/etc/ssh/sshd_config禁用PasswordAuthentication,设置UFW允许80/443/22,然后ufw enable。
4.
开启HTTP/2/3(若支持):在server块listen 443 ssl http2; 并在CDN层启用HTTP/3。开启gzip或Brotli(安装brotli模块或使用CDN edge压缩)。
示例缓存头(server或location中):add_header Cache-Control "public, max-age=31536000, immutable"; 对静态资源版本化管理,以便长缓存无风险。
5.
使用Let's Encrypt:certbot --nginx -d example.com,确保证书自动续期(systemctl status certbot.timer)。
CDN origin pull 建议:使用SNI或设置自定义头(如X-From-CDN)并配置只允许CDN IP访问origin(防火墙或Nginx allow 列表)。
6.
选择要点:优先选择在菲律宾或东南亚有POPs的CDN(如支持Anycast、HTTP/3、边缘压缩与图片优化)。
创建站点:在CDN控制台新增站点/zone,origin填写菲律宾VPS的域名或IP,启用Origin Pull并填写验证方式(如origin-pull证书或自定义请求头)。
7.
静态资源:设置长TTL(例如1年)并按文件后缀匹配缓存;启用边缘压缩与Brotli。
动态或登录页面:设置缓存绕过规则(依据Cookie、URL路径或响应Header),对于API走短TTL或不缓存。
8.
主域名建议使用CNAME到CDN提供的域名(或按CDN文档指示),将TTL设置为低值(60-300秒)便于切换;保留api.example.com作A记录直连VPS如需。
切换步骤:先在CDN端确认origin与缓存规则无误,使用低TTL将DNS指向CDN,观察流量和延时,逐步提高TTL。
9.
常用命令: ping yourdomain traceroute -n yourdomain curl -I -H 'Accept-Encoding: gzip' https://yourdomain/static.js mtr -r yourdomain(长链路质量)
线上工具:WebPageTest(选择菲律宾节点)、GTmetrix、Pingdom;监控CDN命中率、带宽、错误率。
10.
优化细节:开启Keep-Alive、调整Nginx worker_processes,根据并发调整worker_connections;静态文件使用版本号避免缓存混淆。
故障排查:若菲律宾用户慢,先用traceroute与mtr定位是否本地链路问题;若CDN命中率低,检查Cache-Control/Set-Cookie与CDN规则;若证书问题,检查SNI与origin证书链。
11.
答:菲律宾原生IP保证源站在本地出口,便于本地直连调试、降低回源延时与网络不稳定带来的影响;对无法被CDN完全覆盖的动态请求或API可提供近端快速响应,改善菲律宾终端的用户体验。
12.
答:把静态资源(图片、JS、CSS)设置高TTL并交由CDN缓存;对于动态请求通过Cache-Control或Cookie判断绕过CDN或使用短TTL。CDN origin pull从VPS拉取最新内容,并在边缘缓存满足缓存策略时直接响应用户,减少回源。
13.
答:先检查HTTP头(Cache-Control、ETag、Vary、Set-Cookie),确认CDN缓存规则是否与源站规则冲突;在CDN控制台查看命中率与回源日志,必要时启用Origin Shield或增加缓存TTL并使用版本化文件名以强制刷新。