1.
准备与选型:选择台湾VPS与合适CDN
- 选择台湾机房的VPS(建议支持高防/抗DDoS套餐)并确认公网固定IP。
- 选择支持全球Anycast节点、可自定义缓存规则和提供WAF的CDN供应商(例如Cloudflare、Akamai、Fastly或大陆可用的CDN)。
- 购买前确认能获取CDN出口IP段、支持自定义证书与回源校验、API可用以便自动化。
2.
初始VPS系统与环境准备
- 系统更新:sudo apt update && sudo apt upgrade -y(Debian/Ubuntu)或 yum update -y(CentOS)。
- 安装Web服务:推荐 Nginx。sudo apt install nginx -y。开启并测试:systemctl enable --now nginx。
3.
基础安全配置(高防前的主机端)
- 防火墙:使用ufw或iptables限制入站端口,仅允许22、80、443,其他端口默认拒绝。示例:ufw allow 22,80,443/tcp && ufw enable。
- fail2ban:安装并配置防暴力破解:sudo apt install fail2ban -y。
- 用户与SSH:禁用root SSH登录,使用密钥登录并修改默认端口(非必须但推荐)。
4.
配置Nginx与性能优化
- worker_processes auto;打开 keepalive_timeout,增加sendfile、tcp_nopush。
- 启用Gzip/Brotli(如使用Brotli模块或ngx_brotli):配置gzip on; gzip_types text/css application/javascript ...。
- 开启HTTP/2:在listen 443 ssl http2;同时启用OCSP stapling与启发式缓存头。
5.
回源与CDN对接步骤(DNS与Origin设置)
- 在CDN后台新建站点/域名,回源(Origin)填写台湾VPS公网IP或域名:origin.example.com。
- DNS记录处理:临时将域名A记录指向VPS并把TTL调低(如60s),之后按照CDN指引将域名CNAME到CDN或把A改为CDN给出的IP/记录。
- 若使用CNAME方式,原始主机保留,并确保CDN可解析到回源IP。
6.
启用CDN缓存规则与静态加速
- 在CDN设置中创建缓存规则:静态文件(/static/*, .css, .js, .jpg, .png)设置长TTL(7天或更长),动态页面可设置缓存但采用Cache-Control no-cache或短TTL。
- 设置忽略查询参数或保留关键参数,开启压缩传输与brotli。
- 配置回源头部:CDN应转发真实IP(X-Forwarded-For, CF-Connecting-IP或X-Real-IP)。
7.
回源保护:只允许CDN访问Origin
- 获取CDN提供的IP段列表或使用CDN回源认证(Secret、Token)。
- 在VPS上用ufw或iptables限制80/443入站仅允许CDN IP段:例如 iptables -A INPUT -p tcp -m multiport --dports 80,443 -s
-j ACCEPT,然后默认DROP其他。
- 或者在Nginx配置中校验特定回源头部token,仅当存在时才响应请求。
8.
证书与HTTPS的处理
- 两种常见做法:1) 在CDN端启用SSL并上传或由CDN托管证书,回源启用自签或Let’s Encrypt并在CDN端选择Full (strict)模式;2) 直接在VPS上用Let's Encrypt申请证书并上传到CDN(如支持)。
- 确保CDN与回源都启用TLS1.2/1.3并关闭弱套件。
9.
缓存刷新、版本控制与自动化
- 静态资源采用版本号(如 app.v1.2.js)以避免频繁手动purge。
- 使用CDN API实现自动化清理(部署脚本在CI中触发)。示例:curl -X POST https://api.cdn.com/purge ...
10.
网络与内核优化提高响应速度
- 调整TCP参数(/etc/sysctl.conf):net.core.somaxconn=1024, net.ipv4.tcp_tw_reuse=1, net.ipv4.tcp_fin_timeout=15。执行 sysctl -p。
- 开启KeepAlive并调大worker_connections以支持并发。
11.
监控与测试(必做步骤)
- 使用curl测试回源与CDN路径:curl -I https://example.com 查看Server、Via、X-Cache等头部。
- 使用traceroute/tracepath检测到台湾机房与CDN节点的路径差异,使用GTmetrix、WebPageTest或Pingdom检测TTR、TTFB及加载时间。
- 配置日志与告警(如Prometheus+Grafana或CDN自带监控),监控流量、命中率与异常请求。
12.
回滚与高可用策略
- 部署前先把DNS TTL调低,部署验证后再把TTL调高。
- 配置备份Origin或多区域回源(如同一CDN支持多个回源优先级),并设置健康检查与故障转移规则。
13.
常见问题排查小技巧
- 如果发现资源未走CDN:检查DNS是否已完全切换、CDN是否缓存命中、回源防火墙是否误阻CDN IP。
- 若SSL报错:检查CDN模式(Flexible/Full/Strict)与回源证书是否匹配,确保SNI配置正确。
14.
问:将台湾VPS与CDN结合后,如何确保回源不会被直接攻击?
- 答:通过两步保护:1) 在VPS防火墙中仅允许CDN提供的IP段访问80/443;2) 在回源开启基于Token或自签证书的回源验证(CDN回源认证),并关闭回源的其他不必要端口。此外保留后门IP(你的管理IP)并用SSH密钥和限制登录来降低风险。
15.
问:如何验证CDN已生效并且加速效果明显?
- 答:用curl -I 检查响应头(X-Cache: HIT),使用GTmetrix/WebPageTest对比加速前后TTFB与完全加载时间,使用traceroute确认请求走向CDN节点并测量各区域延迟。缓存命中率高、TTFB降低即为生效。
16.
问:部署流程中最容易忽略但影响速度的配置有哪些?
- 答:常见被忽略项包括未启用HTTP/2或TLS 1.3、未开启Gzip/Brotli压缩、静态资源未设长TTL、回源未限制直接访问(导致绕开CDN)、以及没有配置Keep-Alive和合适的TCP内核参数。逐项检查并修复可显著提升访问速度。
来源:台湾vps云主机高防御云空间与CDN结合提升访问速度实践