Nginx+Trafficserver+Bind智能CDN缓存

目的:通过Bind view视图功能,将来源于不同运营商,不同地域的用户调度至最近的CDN节点,减少用户的响应时长,降低网站源站压力,提高用户体验;

 

技术栈:

lvs+keepalived:边缘cdn一般两台或多台,通过lvs+keepalived双主,两台同时工作,若其中一台服务器宕机,vip会自动漂移到另一台,实现高可用,并提供对nginx健康检查;

nginx:做反向代理,将用户请求代理到后端的trafficserver缓存服务,并提供限速、对后端trafficserver健康检查等功能;

trafficserver:缓存静态资源,若本地缓存无资源,则将根据配置回源至源站或一级cache节点;

bind:dns服务器,将用户请求的域名解析至离用户最近的节点;

 

客户加入cdn服务流程:(后续需要做到客户自助平台,用户自助申请,并提供带宽计费,日志查询,用户分布信息等功能)

1、我方提供cname给用户,用户在域名提供商dns除将需要加速的域名cname至我方提供的域名;

2、我方根据用户需求带宽等将cname配置调度策略;

3、我方需要将用户域名配置下发至cdn机房,并验证用户服务是否正常;

 

用户访问流程:

1、用户请求www.a.com域名,通过本地dns-->运营商dns-->根dns查询递归至.com的权威dns服务器,查询到a.com的权威dns;

2、通过a.com的权威dns查询到www.a.com被cname至我方的cname(a.b.com),而该域名解析权在我方dns服务器;

3、通过递归查询到b.com的权威dns服务器,可以查询到a.b.com的解析地址,在我方的dns服务器中会根据用户的递归dns服务器的IP地域运营商信息来匹配最优的A记录返回给用户;

4、浏览器取到解析的IP地址,并发起http请求;

5、用户请求到我方cdn服务器,nginx将用户请求转发到trafficserver,trafficserver查询缓存是否已存在是否过期,若新鲜则直接返回,若无或者过期,则去上一级缓存或者源站回源,并将其缓存下来,下个用户请求该资源则直接命中;

 

服务器配置管理:

1、用户通过自助平台申请并填写域名的相关参数,平台会自动下发到git仓库中;

2、管理员审核配置是否无误,审核后自动发布到配置集中管理平台,如puppet;

3、puppet中提前配置好灰度节点的主机名规则如test-t.hostname,边缘cdn节点test-t.hostname通过本地运行的puppet_agent自动向puppet中心服务器同步配置,其他节点不会同步该配置;

4、测试人员绑定主机测试域名是否正常加速,若测试通过,则修改puppet中心服务器分发至所有节点;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值