1) 目标:用大连VPS做源站(origin),台湾服务器做边缘缓存(edge),通过DNS/反向代理实现对台湾地区及周边用户的加速。
2) 思路:源站存放原始内容,边缘缓存静态资源并反向代理动态请求;使用低TTL的GeoDNS或负载均衡实现智能调度;用rsync/镜像保证内容同步。
1) 准备一台位于大连的VPS(CentOS/Ubuntu),一台位于台湾的服务器;都需root或sudo权限。
2) 安装必要软件:nginx、rsync、certbot、curl、traceroute、htop。示例:Ubuntu上:sudo apt update && sudo apt install -y nginx rsync certbot curl traceroute.
1) 部署网站文件到/var/www/html,确保权限。
2) 配置Nginx做源站,仅允许台湾边缘IP或CDN回源访问(可用allow/deny或鉴权)。示例location中加入:allow 1.2.3.4; deny all;(替换为你的edge IP)。
3) 开启gzip、长缓存控制等基本优化。
1) 安装Nginx并启用proxy_cache模块(多数默认已启)。
2) 创建缓存目录:sudo mkdir -p /var/cache/nginx; sudo chown www-data:www-data /var/cache/nginx。
3) 在nginx配置中添加proxy_cache_zone和proxy_cache_path,作为边缘节点使用。
1) 使用rsync从大连源站拉取静态内容:rsync -avz --delete root@dalian:/var/www/html/ /var/www/html/。
2) 在台湾服务器上通过cron定期执行,例如每5分钟:*/5 * * * * /usr/bin/rsync -az --delete root@dalian:/var/www/html/ /var/www/html/ >> /var/log/rsync.log 2>&1。
3) 对于大文件或实时更新可改用inotify+rsync触发同步。
1) 在DNS服务商开启GeoDNS或按地域解析:将台湾/东亚流量指向台湾边缘IP,其他流量指向大连VPS或CDN。
2) 设低TTL(例如60s)以便快速切换。若使用Cloudflare/NS1等,配置健康检查与failover。
1) 在http{}块加入:proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:10m max_size=5g inactive=60m use_temp_path=off;proxy_cache_key "$scheme$request_method$host$request_uri";
2) 在server/location中:proxy_cache one; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; add_header X-Cache $upstream_cache_status; proxy_pass http://源站IP;。
1) 使用certbot在边缘与源站都申请证书:sudo certbot --nginx -d example.com。
2) 在nginx启用HTTP/2:listen 443 ssl http2; 对于HTTP/3需用quiche或cloudflare等支持,生产环境优先使用HTTP/2即可。
1) 编辑/etc/sysctl.conf增加:net.core.somaxconn=65535 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_fin_timeout=15 net.ipv4.tcp_max_syn_backlog=4096,执行sudo sysctl -p。
2) 调整nginx worker_processes/worker_connections以支持并发:worker_processes auto; events { worker_connections 10240; }。
1) 从台湾和大陆分别执行traceroute/tracert检查路由:traceroute example.com。
2) 用curl验证缓存头:curl -I https://example.com/static/file.js(关注X-Cache, Age, Cache-Control)。
3) 使用压力测试工具(ab/wrk)模拟真实访问,记录响应时间和命中率。
1) 部署Prometheus + node_exporter + nginx_exporter收集指标,Grafana看面板。
2) 配置DNS健康检查:当台湾edge宕机时自动回退到大连源或其它备用节点;也可用Keepalived+VRRP在多台边缘间做热备。
1) 静态资源使用长缓存策略并通过文件名指纹化管理版本更新(如file.v123.js)。
2) 对于动态接口使用边缘反向代理并开启缓存策略或Stale-while-revalidate以降低回源压力。
3) 注意两地法律与数据合规,防火墙与安全组开放最小端口。
答:在源站Nginx中使用allow/deny限制回源IP,或在防火墙(iptables/ufw/cloud provider security group)中只开放边缘服务器的IP和管理端口;同时对回源请求加入简单Token或签名校验,示例Nginx:allow 1.2.3.4; deny all;。
答:通过在边缘Nginx添加add_header X-Cache $upstream_cache_status; 然后curl -I查看响应头是否显示HIT或MISS;同时检查Age头和Nginx缓存目录中文件更新时间来判断命中率。
答:1) 临时增加边缘缓存时间(proxy_cache_valid)减少回源频率;2) 启用stale缓存策略(proxy_cache_use_stale error timeout updating)允许旧内容继续服务;3) 使用GeoDNS将流量短时导向其他健康的备用节点或CDN。