轻量级CDN软件反向代理模式 开发的记录

严格来说这个都不算CDN软件,只是一个反向代理集群的管理和日志分析系统.
开发记录下 补下之前的

如果有希望一起开发共同学习的 加我微信 可以有偿
语言类需求 C/PHP/RUBY/GO/Python
DBA 类需求 Mongodb,mysql,redis
大数据需求 ELK
主流的方向 有兴趣的都可以 主要涉及任务调度,任务下发,实时配置同步,缓存集群管理等等
当然 初版没那么复杂, 这个都是远期的规划
计划作为一个商业产品来做

Day1 Passed
nginx的安装 和需求使用到模块
编译配置
制作nginx的server模板
log shipping的搭配调试

Day2 Passed
初版的日志集中收集系统 已经完成了 测试环境的线上在收集数据了
日志2种格式
1. Host+nginx标准格式 (数据分析用途)
2. Host+流量日志格式 (计费数据用途)
因为测试环境流量大 当前只收集流量数据
原理是
将nginx的日志,通用log shipping的中间件 parse JSON格式 在发送给MONGODB数据库存储保留

存储的日志格式这样的 这个是流量计费用到的byte和计算缓存命中率的cache status
logf1

查询返回的状态码 可以match指定域名
logf2

查询所有域名列表,包括记录的日志条数
logf3

查询指定域名的流量使用情况
logf4
使用了88521570910bytes
转为MB和GB
结果是86446846M 和 82.442GB
这个就是需要对这个域名收取的计费流量
这里查询指定日期时间段 实现流量数据的采集
因为保证计费数据库稳定且正确,使用LB+集群的方案来收集和存储
mongodb的原始日志一般保留1个月 然后clean掉就可以了
如果每天或者每小时采集当前一个周期的数据汇总额外存储 便于数据分析
那日志可以每天或者每周删除存储

Day3

2 thoughts on “轻量级CDN软件反向代理模式 开发的记录

  1. 期待

  2. Adrian

    做过自然语言处理后台,熟悉python+mongoDB+Redis+RabbitMQ+ZeroMQ
    & ELK or Splunk
    但对CDN技术不熟。
    不需要费用,愿意参与开发。若有意请与我邮箱联系。谢谢!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注