一种内容分发网络的透明代理转发方法与流程

文档序号:12917507阅读:823来源:国知局

本发明涉及互联网技术中的代理转发领域,特别是一种内容分发网络的透明代理转发方法。



背景技术:

随着互联网的深度发展,越来越多的行业加入到互联网浪潮中,产生了无数基于互联网的应用,提供基于文字、图片、视频、大数据服务等等。但随着应用和用户数的井喷的发展,网络游戏产业逐渐成熟,特别是网络视频等需要高带宽的内容,应用服务对服务器和网络带宽的要求越来越高,外加不同地域的网络基础设施建设水平良莠不齐,信息在网络间传输的压力越来越大,进而导致用户与内容提供商之间信息传输愈来愈慢,降低了互联网应用的使用体验。

为解决上述问题,一种基于分布式网络的内容存储与分发的互联网服务诞生了,这种互联网服务即是cdn(contentdeliverynetwork,即内容分发网络)。cdn是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

cdn网络节点主要起到缓存和代理的功能。在缓存没有命中的情况下,用户的请求可以分解为两个阶段,第一阶段是用户的请求发送到cdn节点,第二个阶段是cdn节点发送到源头站。两个阶段的传输过程可以做到彼此独立,因此如果灵活的配置两个阶段的http传输参数,主要包括传输协议(https、http),转发端口(port),以及源站ip等信息。

现有cdn网络加速主要支持80、443端口的加速,也就是说如果用户要对非上述两个端口加速,不能够很好的支持。cdn对非80、443端口加速不支持,对于http请求两个阶段的链路参数设置不够灵活。



技术实现要素:

本发明所要解决的技术问题是提供一种内容分发网络的透明代理转发方法,通过在节点提取第一阶段的请求中包含的域名信息,再根据域名信息查找该域名配置的代理转发参数,根据代理转发参数来建立第二阶段的请求链接,实现不同域名转发到相同或不同主机的不同端口。

为解决上述技术问题,本发明采用的技术方案是:

一种内容分发网络的透明代理转发方法,包括以下步骤:

步骤1:在cdn系统中设置域名的代理转发参数,所述代理转发参数包括:源站地址、源站监听端口、cdn和源站之间的传输协议、cdn节点监听该域名请求的端口、外部用户访问cdn节点的传输协议、源站权重;

步骤2:将步骤1所述代理转发参数作为一个参数组,所述参数组为一个或者多个,以域名作为键值,将配置的参数组同步到所有的cdn节点的配置数据库中;cdn节点读取域名的配置信息中的所有“cdn节点监听该域名请求的端口”,并监听这些端口;

步骤3:当外部访问用户发起的请求在cdn节点没有命中缓存资源,需要回源时,根据设置的代理转发参数做回源目的地址选择,即:

步骤3.1:提取当前访问链接的参数,包括域名、传输协议和访问cdn节点的端口;

步骤3.2:根据当前访问链接域名,在节点的配置数据库中查询源站管理员的所有源站配置参数组;

步骤3.3:针对每组参数,如果“外部用户访问cdn节点的协议传输”、“cdn节点监听该域名请求的端口”分别与当前请求的传输协议、访问端口匹配,则将该参数组加入备选转发队列;

步骤3.4:根据源站权重随机选择一个满足条件的源站配置的参数组,提取源站的代理转发参数,建立节点与源站的链接。

进一步的,若没有设置cdn和源站之间的传输协议,则继承用户访问cdn节点的传输协议。

与现有技术相比,本发明的有益效果是:1)能对http访问的不同端口、不同主题之间无缝转发。2)能够基于域名配置,实现不同域名转发到相同或不同主机的不同端口。

附图说明

图1是本发明中透明转发基本架构示意图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。

为了灵活实现cdn节点在两个阶段的代理转发,本发明通过在节点提取第一阶段的请求中包含的域名信息,再根据域名信息查找该域名配置的代理转发参数,根据代理转发参数来建立第二阶段的请求链接。详述如下:

1、cdn源站管理员根据源站情况(源站配置的情况,比如源站监听的端口、传输协议http或https),在cdn系统中设置域名的代理转发参数,参数包括:

1)源站地址--upstream_ip,必填参数;

2)源站监听端口--upstream_port,默认http转发到80,https转发到443;

3)cdn和源站之间的传输协议--upstream_http_scheme,值为“http”或“https”,如果没有设置,则继承用户访问cdn节点的传输协议;

4)cdn节点监听该域名请求的端口--listen_port,必填写参数;

5)外部用户访问cdn节点的传输协议(http或https)--original_scheme,值为“http”或“https”,必填参数;

6)源站权重--upstream_weight,必填参数。

以上参数作为一个参数组,可以设置一个或者多个参数组。以域名(字域名级别,支持范解析格式)作为键值,将配置的参数组同步到所有的cdn节点的配置数据库中;cdn节点读取域名的配置信息中所有“cdn节点监听该域名请求的端口”,并监听这些端口。

2、当外部访问用户发起的请求在cdn节点没有命中缓存资源,需要回源时,根据上述设置参数做回源目的地址选择,具体为:

1)提取当前访问链接的参数,包括域名host、传输协议scheme、访问cdn节点的端口port。

2)根据当前访问链接的域名,在节点的配置数据库中查询源站管理员的所有源站配置参数组。

3)针对每个参数组,如果scheme(cdn节点实际接收到用户的请求的传输协议)等于original_scheme(配置中“外部用户访问cdn节点的传输协议(http或https)),port等于listen_port,表示当前的参数组满足回源条件,选出所有满足的条件的参数组。

4)通过上述步骤得到满足条件的源站组,根据upstream_weight随机选择一个源站配置,提取源站的参数,如upstream_ip,upstream_port,upstream_http_scheme,建立节点与源站的链接。

最终,cdn实现不同传输协议、不同监听端口之间的透明转发。

如图1所示,www.test.com这个子域名针对221端口,配置的代理参数为:

{“upstream_ip”:10.8.2.1,

“upstream_port”:443,

“upstream_http_scheme”:https,

“listen_port”:221,

“original_scheme”:http,

“upstream_weight”:50,

}

当接收到221端口的http请求后,首先提取出http的host信息--www.test.com,根据host到数据库中查找到www.test.com的代理配置,然后筛选复合条件的配置,作为建立第二阶段请求,即回源站的请求的链接建立的参数。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1