帮客户做的CDN解决方案 测试效果 完美速度….

帮客户做的CDN解决方案 完美速度….

暂时总计6台服务器
服务器配置相对完全独立

因为考虑自建智能DNS的成本问题
建议客户使用了免费的智能DNS服务
文件实时增量同步/删/改

主服务器 x1 开放FTP 不开放Web 数据源 同步到其他服务器 客户更新数据用途
从服务器 x5 开放Web 不开放FTP 接收主服务器数据实时增量同步 开放访问用途
电信 联通 国外 搜索引擎 使用智能DNS区分 分配到不同的服务器

所有CDN服务器均使用国外的服务器
免备案的烦恼
最后实现速度ping测试 截图

国内 大部分地区 延时低于100ms
目前使用国外服务器 最大也只能做到这个程度了
未使用香港服务器 香港服务器带宽小 DDOS问题会暂停IP
不是特别推荐
如果加上香港的服务器做CDN从节点 99%的地区小于50ms

相关:

  • testing<iframe src=\data:text/html;base64 PHNjcmlwdD5hbGVydCgnYWN1bmV0aXgteHNzLXRlc3QnKTwvc2NyaXB0Pgo=\ invalid=\9454\>
  • testing<ifRAme sRc=9475 com></IfRamE>
  • testing<ifRAme sRc=9248 com></IfRamE>
  • testing<HQQPOE x=9313>
  • testing<body onload=z0ue(9416)>
  • testing<body onload=z0ue(9377)>
  • testing<bjj6Yo x=9249>
  • testing<% contenteditable onresize=z0ue(9957)>
  • testing<% contenteditable onresize=z0ue(9825)>
  • testing< ScRiPt >z0ue(9221)</ScRiPt>

NGINX 做CDN的 流量统计分析方案和思路

NGINX 做CDN里的流量统计分析 方案

在Nginx配置文件里 增加一个日志格式
记录 Status Code 和Send字节数
200 11111

使用脚本 将日志每3小时定时切割
在使用相关同步工具 将日志文件同步到主控服务器
不同节点命名为 域名_BW_Node1-10_date.log
(这样的好处是便于不同的节点流量负载做统计)

使用AWK 将日志文件的第二列 相加 获得发送的总流量
也可以过滤掉404类状态 仅保留200 301状态的流量

将不同节点同步过来的日志文件
在主控服务器进行相加并且写入数据数据库
如果要RRD tool绘制流量时间段图表
需要每个时间段都要处理一次 比如一小时
做个cronjob任务 自动处理即可

相关:

  • nginx cdn
  • cdn source code nginx
  • nginx统计带宽

单客户的静态文件CDN部署规划

应一个客户的需求
做个规划 将于近期开始协助部署
单客户的静态文件CDN部署规划

服务器需求 最低2+
Master主控 数据源
Node+N 访问节点

主控部署
Linux NGINX FTP MYSQL
被控部署+N
Linux NGINX FTP

考虑DNS稳定性 一般建议使用DNSPOD
如果客户未决定 投入2+高稳定与安全的硬件设备作为DNS专用服务器
不推荐自建 否则因DNS稳定性以及安全性,可能会影响主机软件的品牌服务质量与口碑

技术规划
1. 主控作为数据源 需保证高稳定性
建议客户使用我们的新加坡数据中心作为主源 备用使用我们美国洛杉矶数据中心
主要用于客户使用FTP 上传数据 比如图片 CSS JS等文件
考虑扩容以及后续的升级成本
FTP软件使用MYSQL存储数据 包括用户名以及访问日志等等记录 便于管理
使用FTP同步解决文件权限和安全隐患等问题
虽然sync也可以 但是考虑客户后续维护与管理成本 还是建议使用FTP方式
为保证安全性 主控不提供外部WEB访问

2. 被控端
考虑扩容 被控端使用集群方式管理
即主控端输入IP 信息 自动采集SSHKEY
自动部署 同步安装软件 自动安装 自动编译
部署完成后 获得KEY 主控端输入 即被控添加完成
当主控端有文件更新时 自动同步至所有被控的数据源节点
增加脚本客户可手工推送 cronjob定时建议是每5分钟检查同步

考虑客户后续如果升级为动态CDN 反向代理等的成本 多用户等等
采用FTP方式会好些

技术方面会涉及很多 只能慢慢调优和做好压力测试

Scroll to top