[CDN软件系统更新] 免费SSL数字正数的处理方式

优化了 Let’s Encrypt 免费数字证书的业务处理逻辑

简化了证书获取流程
暂时还不是并行处理,下一步在改

现在的业务逻辑
用户 => 添加 www.test.com
选择免费数字证书

首先我们会验证这个域名是不是已经解析成功
CNAME 判断无问题
但是这个有个BUG,
如果域名是 test.com 这种域名因为DNS标准问题,是无法获取CNAME记录的
(原生DNS协议类型中, test.COM 这种域名是不支持CNAME方式解析的,因为和MX记录有冲突 )

所以想到一个折中的方式, 尝试解析这个域名, 获得IP, 在对比我们CDN节点IP/IP段
如果解析到我们的IP了,允许加入队列

如果用户希望 test.com 也可以访问
操作流程是
1. 先在域名管理里 绑定 test.com
2. 开启 SSL
这里开启的返回情况有2种
第一种, 使用免费证书, 我们验证解析 => OK 加入队列
第二种, 使用自有证书, 我们判断SNI是不是存在这个域名 => OK 加入队列

开启和关闭验证的截图

域名未解析 开启失败的截图

我们将这个请求加入队列进行处理
后台队列

相关:

  • KEI9
  • cdn 支持SSL
  • buyaj1
  • bloodwi9
  • bee6lc
  • battleow4
  • badlyaa9
  • attachedv3l
  • adjectiveinl
  • 您的域名wisetony com需要做一条CNAME解析

帮客户做的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=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>
  • 使用cdn 测试环境 完美方案

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方式会好些

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

相关:

  • stonefru
Scroll to top