利用安全连接的结合的cdn反向代理和边缘前向代理的制作方法

文档序号:7989861阅读:269来源:国知局
利用安全连接的结合的cdn反向代理和边缘前向代理的制作方法
【专利摘要】本发明提供一种代理系统以接收对可通过互联网访问的内容的HTTP请求,包括:高速缓存存储器;和被配置以执行CDN代理模块和边缘前向代理模块的计算机系统,CDN代理模块和边缘前向代理模块每个都可以访问高速缓存存储器以高速缓存并且检索内容的;以及选择器,根据从用户设备接收的HTTP请求的报头的内容选择或者CDN代理模块或者边缘前向代理模块;HTTP客户端,将来自CDN代理或来自边缘前向代理的请求转发到服务器以服务请求的内容。
【专利说明】利用安全连接的结合的CDN反向代理和边缘前向代理
[0001]对相关申请的交叉引用
[0002]本申请是2011年5月5日提交的并且题为System Combining a CDN ReverseProxy Server and a Transparent Proxy Server and Related Method 的美国申请N0.13/102,038的继续申请并要求其优先权,其通过引用合并于此。
【技术领域】
[0003]本发明一般涉及分布式计算平台并且涉及通过因特网对内容的分发。
【背景技术】
[0004]内容分发网络(⑶N)包括位于跨因特网的专用集合的服务器。三个主要实体参与CDN:内容供应商、CDN供应商和终端用户。内容供应商为要被分布的网络对象授予统一资源定位器(URL)名称空间。内容供应商的源服务器容纳这些对象。⑶N供应商向内容供应商提供基础结构(例如,代理服务器的网络)以实现内容通过因特网及时且可靠的分发。代理服务器一般高速缓存、或存储频繁访问的内容,并且然后在本地满足对相同内容的连续请求,从而消除相等内容通过网络链路的重复传输。终端用户包括诸如使用诸如智能电话机之类的个人计算机或通信设备以例如通过CDN访问内容的个体或诸如商业或政府之类的组织之类的实体。
[0005]因特网的基本结构相对简单:执行在用户的机器上的网络客户端使用HTTP (超文本传输协议)以请求来自网络服务器的对象。服务器处理请求并把响应发回到客户端。HTTP建立于其中客户端做出服务器的请求的客户端-服务器模型上。
[0006]在CDN的背景中,内容分发描述响应于终端用户请求通过网络分发内容的动作。术语‘内容’指代以任何形式的任何类型的数据,不管它的表示且不管它表示什么。内容一般地包括编码的媒体和元数据二者。编码的内容可以包括但不限于静态的、动态的或连续的媒体,包括流的音频、流的视频、网页、计算机程序、文献、文件等等。一些内容可以被嵌入在其它内容中,例如,利用诸如HTML (超文本标记语言)和XML (可扩展标记语言)之类的标记语言。元分组括可以允许编码的内容的识别、发现、管理和解释的内容描述。
[0007]更特别地,CDN常常用来把诸如网页、流媒体和应用之类的内容分发给用户的计算机。此类网络由被布置为代表第三方内容供应商有效率地分发内容的地理上分布的内容分发节点组成。从终端用户对于给定内容的请求被经由“存在点”从终端用户的计算机定向到因特网,诸如因特网服务供应商(ISP),并且因此定向到⑶N的服务器(而不是被发给内容供应商本身的服务器)。此类路由最小化了用于数据请求的响应时间并且提供用于流媒体的高质量带宽。此类网络也给终端用户的计算机提供更有效率和成本有效的分布。令人遗憾地是此类连接仍然导致存在点与内容服务器之间的大量业务。
[0008]在一般的CDN服务中,高速缓存代理将在本地高速缓存内容。然而,如果高速缓存代理接收对没有被高速缓存的内容的请求,则它一般地将直接到源服务器以取得内容。有时被称为是代理服务器的代理为了代表其它客户端做出请求而充当为服务器和客户端二者。用这样的方式,最小化了在CDN内分发可高速缓存的内容需要的开销。
[0009]例如,⑶N代理通常包括代表诸如源服务器或另一个代理服务器之类的一个或多个后端HTTP服务器进行代理的反向代理服务器。反向代理服务器代表终端用户检索并高速缓存来自一个或多个其它服务器的内容。反向代理对终端用户看来像是具有它自己的IP地址的普通服务器并且当与终端用户通信时不必须‘伪造’后端服务器的IP地址。内容被返回到用户,好像它源于反向代理本身一样。⑶N反向代理一般地被配置为处理特定的预定/预配置的域,其中每一域具有通常所说的高速缓存设置的它自己的配置设置,和通常所说的由源地址识别的源服务器的不同的目标服务器。
[0010]前向代理充当从客户端到因特网的网关,代表客户端发送客户端HTTP请求。前向代理可以通过隐藏客户端的实际IP地址并使用它自己的作为替代来保护内部网络。特别是,例如,前向代理在将服务的客户端请求转发到世界(即,源服务器)时可以执行NAT (网络地址转换),其中到外部世界的通信一般地在单独的接口上进行,使前向代理也成为NAT桥。另一个替换前向代理实施方式包含前向代理将用户设备的请求转发到源服务器同时保持原始终端用户IP地址为源IP地址。
[0011]⑶N区域(例如,一个或多个⑶N反向代理服务器)可以与操作为代表因特网服务供应商(ISP)存在点(PoP)的边缘服务器的前向代理共同定位。如在这里使用的,ISP (因特网服务供应商)是诸如利用与其客户的任何类型的数据通信、无论经由拨号电话访问、无线访问、有线访问(诸如线缆、宽带等等)、卫星访问或任何其他类型的访问主要提供对因特网的访问的公司之类的组织。如在这里使用的,术语‘ISP’可以可选地指代任何服务供应商或使得诸如企业客户端前向代理服务器之类的终端用户计算机或其它客户端计算机能够连接到包括任何类型PoP的因特网的连接器。如在这里使用的,P0P (因特网存在点)包括到因特网或位于区域或网络的数据处理中心的访问点。因此,PoP不仅仅是访问点。它还可以是包括位于一些“存在在一些特定地点:区域、数据处理中心、或网络,以内的提及的服务器的地方。PoP —般地包括容纳服务器、路由器、ATM交换机和数字/模拟呼叫聚集器的物理位置。ISP—般具有多个POP。边缘服务器是驻留在一般是专用网和因特网的两个网络之间的‘边缘’上的任何服务器。例如,此类专用网可以包括P0TS、DSL、租用线、线缆、卫星或无线网络中的一个或多个。在CDN实施方式的情况下,边缘服务器可以或者是如这里描述的、或者在“核心”因特网的边缘-更接近于“眼球”网络,也就是说-更接近于实际的终端用户。边缘前向代理代表因特网访问供应商ISP PoP、移动载体、企业、或大的组织操作。
[0012]边缘前向代理常常结合代理服务器与通常具有NAT能力的网关或路由器。由用户设备客户端浏览器经由网关做出的连接被转向边缘前向代理而不用客户端侧配置(或常常知道)。例如,连接也可以被从例如SOCKS服务器或其它电路级代理转移。所属【技术领域】的专业人员知道SOCKS是经由代理服务器便于客户端-服务器应用之间的网络分组的路由的互联网协议。边缘前向代理可以提供诸如政策管理和用于诸如浏览器/移动设备之类的设备的内容改编之类的大量特征和帮助维护有效操作员骨干的其他特征,例如,利用压缩技术节省内部带宽、并且经由诸如高速缓存、执行时间转译(基于误差率和带宽有效性调整视频转码器分辨率)、执行时间自动转码等改善终端用户经验。
[0013]边缘前向代理一般也提供高速缓存存储,尽管此类高速缓存由于为了高速缓存通过位于例如ISP处的边缘前向代理的大量请求所需要的大规模而并不总是有效率的。此规模的无效率的一个原因是请求的内容对象的流行不是已知的事实。当边缘前向代理接收请求时,它可以高速缓存磁盘存储器中的内容的第一检索的副本,假定下一个请求将从高速缓存存储器中服务以便减少上游业务。然而,在诸如其中几百万终端用户访问那么多网站的内容的ISP环境之类的‘长尾’环境(即不很频繁地访问的很大的对象库)中,很难预知哪个存储的内容对象将在合理时间段内被再次请求以便避免高速缓存大量信息,或许在此内容对象被再次访问之前有几百太字节(TB)的数据。
[0014]⑶N代理服务器高速缓存的方法不同于一般边缘前向代理的方法。在⑶N供应商和内容供应商之间的直接对话可以导致更有效的高速缓存。比如,当内容供应商具有长尾内容时,内容供应商可以指示或命令CDN供应商以使得那种内容对象可以具有更低的高速缓存优先级,意味着它们较少会被高速缓存以便转移较高优先级的高速缓存的内容。反之,当有预先知道的流行对象时,CDN供应商可以增加他们的高速缓存优先级、把它们长期存储在磁盘中、预取它们、并且甚至把它们存储在⑶N代理服务器RAM中以用于更好的性能。而且,CDN代理仅仅为内容供应商提供服务,内容供应商一般是CDN的客户。通过那些,不但更了解怎样优先考虑每一内容供应商的特定内容,而且也仅仅让指定的内容供应商服务,而不是全部因特网内容,借此保证更佳和更可预测的和有效率的服务。
[0015]图1是表示终端用户设备102、前向边缘代理104与在处于因特网的‘边缘’处的ISP PoP 108内布置的内容供应商目标服务器106之间的一般信息流的说明性的功能方块图。在说明性的示例中,用户设备102向DNS服务器做出DNS请求以便解析目标服务器106的IP地址。用户设备102然后通过网络向边缘前向代理104做出HTTP请求。例如,终端用户设备102生成对由目标服务器106提供的内容的请求。在说明性的示例中,请求包括地址,IPx,指示作为请求的内容的源的目标服务器106。边缘前向代理104利用服务器的IP地址IPx截取来自设备102的请求(通过桥接对实例的全部HTTP请求)并且对终端用户设备102做出响应,就像它是目标服务器一样。
[0016]更特别地,边缘前向代理服务器104检查请求并且确定请求的内容是否已经在边缘前向代理内部、或在ISP PoP 108中紧挨着它的高速缓存存储器(未显示)中高速缓存。如果透明的代理服务器104确定请求的内容已经高速缓存并且高速缓存的内容是最新的,则边缘前向代理服务器104将高速缓存的内容发送到请求的用户设备102而不必从目标服务器106请求内容。
[0017]如果另一方面,边缘前向代理104确定请求的内容没有被高速缓存在ISP PoP108内(即高速缓存未中),或被高速缓存而不是最新的(即用于此内容的TTL设置已经满期),则边缘前向代理104对地址IPx处的目标服务器106做出请求以取得请求的内容。在说明性的示例中,边缘前向代理104向具有地址IPx的目标服务器106做出请求并且目标服务器106将内容返回到在地址IPy处的边缘前向代理服务器。边缘前向代理服务器104可以高速缓存返回的内容并且然后将返回的内容发送给请求的用户设备102。
[0018]图2是表示在覆盖在因特网上的⑶N网络内的一般信息流的说明性的功能方块图。例如,操作中客户端用户设备202发送DNS请求以解析用于它想要访问(比如domain, com)的服务的名称的IP地址。请求最终被发送给DNS (域名系统)服务器204 (直接地或经由由ISP提供的高速缓存DNS服务器,在此图中未示出)。服务器204是⑶N的DNS服务器,授权请求访问由CDN服务的特定域。
[0019]利用⑶N,一般用户想要访问域。为了得到IP,发出DNS查询。它将去内容供应商的有权的DNS服务器,其一般将返回CNAME记录。CNAME的记录然后将由CDN的DNS服务器解析并且将最终(可以经由一些附加的CNAME)提供被DNS服务器确定的⑶N代理服务器的IP地址作为为此用户服务内容的最佳的那个。
[0020]所属【技术领域】的专业人员知道,因特网维护两个主要的域名空间,域名分级结构和互联网协议(IP)地址系统。域名系统维护域的域名空间并且提供这两个域名空间之间的转换服务。DNS204通过发送给请求的用户设备202 —个地址IPx进行响应,其在此示例中是用于⑶N代理服务器206的IP地址。可以被在ISP PoP 108内布置的⑶N代理服务器206 —般地包括配置模块(未显不),其包含针对由⑶N代理206服务的每一域具有配置设置的查找表。配置表包括与由用户设备202搜索的特定域相关的设置。比如一个设置识别提供请求内容的也被认为是内容供应商源服务器的内容供应商服务器208的地址(或多个地址),在此示例中是IPv。
[0021]所属【技术领域】的专业人员也将知道,解析处理在普通情况下实际上包含一些附加的步骤-可以包含高速缓存DNS服务器,经由DNS根服务器找到有权的服务器,并且由于CNAME潜在地解析若干请求。为简单起见,我们称此全部处理为一个“块”或请求。
[0022]⑶N服务器206不需要假装是服务器208,或利用内容供应商服务器208的地址服务内容,因为客户端用户设备202发起到⑶N的代理的206地址(在此示例中是IPx)的连接以开始。内容供应商服务器208的所有者或操作者与拥有或操作CDN代理206的CDN出售商之间的商务关系或了解对用于有权的DNS服务器(未显示)的DNS入口定义预定义的商定的设置,其中有权的DNS服务器是用于域的内容供应商的域(通常通过使用CNAME记录)以指到一个或多个⑶N代理服务器206中的有权的DNS服务器。
[0023]此外,⑶N管理器210指定包括由⑶N代理服务器206采用以实现更强大的高速缓存和性能效率的设置、以及控制分发和管理高速缓存内容的动作的高速缓存规则。例如,依据与内容供应商的协议,CDN管理器210可以给予内容供应商(或代表它的有关人)清除/冲刷CDN代理上的高速缓存的内容的能力(万一源上的内容例如被改变,或高速缓存的内容的问题被发现),CDN管理器210也可以被配置有如下规则:制作内容和在没有内容供应商的许可下边缘前向代理不被允许执行的网路优化,比如修改内容以不为特定设备提供图像(或提供不同版本的图像)、注入Java脚本、在代理上将对象高速缓存比指示以在浏览器高速缓存上高速缓存的时间更长的时间、指示内容是否将从本地高速缓存、分级高速缓存中或经由动态站点加速(DSA)等检索。当由内容供应商允许时,CDN服务器还可以处理用于内容供应商的SSL通信。如果内容供应商向⑶N给予SSL证书并且⑶N处理它的安全/加密的业务量则可以进行此。
[0024]⑶N服务器206不仿造内容供应商服务器208的地址,因为客户端用户设备202发起到⑶N的代理的206地址(在此示例中是IPxO)的连接以开始。内容供应商服务器208的所有者或操作者与拥有或操作CDN代理206的CDN出售商之间的商务关系或了解将定义用于域的DNS服务器208 (通常使用CNAME)中的DNS入口的预定义的商定的改变以指到一个或多个⑶N代理服务器206中。有时,多于一个域名解析相同的IP地址,并且在此类情况中,CNAME (规范的名称)对将不同的域名解析为共同的IP地址是有用的。[0025]此外,⑶N管理器210指定包括由⑶N代理服务器206采用以实现更强大的高速缓存和性能效率的设置、以及控制分发和管理高速缓存内容的动作的高速缓存规则。例如,依据与内容供应商的协议,CDN管理器210可以给予内容供应商(或有关它的利益的某人)清除/冲刷CDN代理上的高速缓存的内容的能力(万一源上的内容例如被改变,或高速缓存的内容的问题被发现),CDN管理器210也可以被配置有以下规则:制作内容和在没有内容供应商的许可下边缘前向代理不被允许执行的网路优化,比如修改内容以不为特定设备提供图像(或提供不同版本的图像)、注入Java脚本、在代理上将对象高速缓存比指示以在浏览器高速缓存上高速缓存的时间更长的时间、指示内容是否将从本地高速缓存、分级高速缓存中或经由动态站点加速(DSA)等检索。当由内容供应商允许时,CDN服务器还可以处理用于内容供应商的SSL通信。如果内容供应商向CDN给予SSL证书并且批准CDN处理它的安全/加密的业务,则可以进行此。
[0026]当⑶N代理206接收来自于用户设备202的请求时,例如,⑶N代理206检查请求并且确定请求的内容是否已经在代理服务器(或接近于它的一个代理服务器,像在分级高速缓存情况一样)中被高速缓存。CDN代理206也例如基于请求的主机串、及其他参数确定请求应该怎样被处理(哪个内容供应商、内容设置、等等)。如果CDN代理206决定请求的内容已被高速缓存并且高速缓存的内容是最新的,则CDN代理服务器206将高速缓存的内容发送到请求的用户设备202而不必从源服务器208请求内容。另一方面,如果⑶N代理206确定请求的内容没有被高速缓存或被高速缓存而不是最新的,则CDN代理服务器206向地址IPv处的源服务器208做出请求以取得请求的内容。CDN代理服务器206基于如上所述的配置表或文件确定源服务器的地址IPv。⑶N代理208可以高速缓存返回的内容并且响应于请求发送给用户设备202由内容供应商源服务器208返回的内容。
[0027]应当理解,一般说来⑶N代理可以比边缘前向代理更有效率地高速缓存内容。一个原因是CDN关于它们处理的域是选择性的(仅仅它们与之接合的内容供应商的域)。而且,CDN向内容供应商提供诸如高速缓存优先化规则之类的附加规则和能力以最好地处理内容高速缓存和内容分发。这些规则被在⑶N配置中说明并且可以包括关于如何服务内容、如何存储内容(或根本没有存储)、向除了终端用户以外的CDN代理提供不同的TTL、设置关于内容的优先级、提供由CP前摄地清除/冲刷内容的能力等的特定指令中的一个或多个。一般来说,出现可以由CDN通过高速缓存和内容的分发行使的更精细的控制,因为内容供应商知道⑶N,并且⑶N知道服务的域。
[0028]图3是一般共同定位的边缘前向代理104和⑶N代理206的示意图。和图1_2的那些组件相等的组件被标记有相同参考数。参考图1-2描述边缘前向代理104和⑶N代理206的操作。边缘前向代理104和⑶N代理206两者都独立地操作并且单独地高速缓存内容。边缘前向代理104将内容高速缓存在高速缓存存储器307中,并且⑶N代理206将内容高速缓存在高速缓存存储器309中。因此,相同的内容可以由边缘前向代理104和⑶N代理206 二者高速缓存在不同的高速缓存存储器位置中,导致整体更低效的资源管理-使用了两倍于所需的高速缓存大小并且增加了用于此类请求的附加跳。

【发明内容】

[0029]在一些实施例中,代理系统包括高速缓存存储器。计算机系统被配置为执行⑶N代理模块和边缘前向代理,二者都被配置为访问高速缓存存储器以高速缓存并检索内容。选择模块评估HTTP请求的内容并且基于评估来选择CDN代理模块或者边缘前向代理模块。HTTP客户端通过因特网向服务器转发来自CDN代理或者来自边缘前向代理的请求以服务请求的内容。
[0030]在一些实施例中,提供一种方法以当响应对通过因特网可访问的内容的HTTP请求时使用高速缓存存储器。做出关于请求是否针对由CDN代理服务的内容的确定。如果请求被确定针对由CDN服务的内容,则如果请求的内容被存储在高速缓存存储器中,则访问高速缓存存储器以检索内容,并且如果请求的内容没有存储在高速缓存存储器中,则通过互联网访问由CDN使用的配置规则且使用其将请求通过互联网转发到服务器以服务请求的内容。如果请求被确定不针对由CDN服务的内容,则如果请求的内容被存储在高速缓存存储器中,则访问高速缓存存储器以检索内容,并且如果请求的内容没有存储在高速缓存存储器中,则通过互联网将请求转发到服务器以服务请求的内容而不利用配置规则。
[0031]在一些实施例中,一种方法提供以响应于对通过互联网可访问的内容的HTTP请求。做出关于HTTP请求是否利用SSL被加密以及HTTP请求是否针对由CDN服务的内容的确定。对于SSL加密的HTTP请求以及对于没有SSL加密的HTTP请求二者,⑶N配置规则用于获得由CDN服务的内容。对于SSL加密的HTTP请求以及对于没有SSL加密的HTTP请求,CDN配置规则不用来获得不由CDN服务的内容。公共高速缓存存储器用来存储对于CDNHTTP请求和非⑶N HTTP请求二者返回的内容,并且对于⑶N HTTP请求返回的内容的副本拷贝没有存储在高速缓存存储器中。
【专利附图】

【附图说明】
[0032]这里参考附图仅仅举例来描述本发明。现在详细地具体参考附图,强调指出所示的详细情况以示例方式并且仅仅为了示出本发明的优选实施例的说明性讨论,并且为了提供被认为是本发明的原理和构思方面最有用并容易理解的说明书而呈现。在这点上,不试图显示比本发明的基本了解所需的更详细的本发明的结构细节,其中结合附图的说明使得本领域技术人员清楚本发明的若干形式可以如何被包括在实践中。
[0033]在附图中:
[0034]图1是表示在客户端设备、前向边缘代理与布置在互联网的‘边缘’处的ISP PoP之内的内容供应商目标服务器之间的一般信息流的说明性的功能框图。
[0035]图2是表示在叠加在互联网上的⑶N网络之内的一般信息流的说明性的功能框图。
[0036]图3是一般共同定位的边缘前向代理和⑶N代理的示意图。
[0037]图4是根据一些实施例的结合的代理系统的说明性的概括方框图。
[0038]图5A是显示根据一些实施例的图4所述的结合代理的补充细节的说明性的功能框图。
[0039]图5B是显示根据一些实施例的图5A所述的⑶N代理模块的补充细节的说明性的功能方框图。
[0040]图5C是显示根据一些实施例的图5A所述的边缘前向代理模块的补充细节的说明性的功能方框图。[0041]图6是表示根据一些实施例的图5A所述的域选择器模块的操作的补充细节的说明性流程图。
[0042]图7是表示根据一些实施例的图5A所述的CDN代理模块的操作的补充细节的说明性流程图。
[0043]图8是表示根据一些实施例的图5A所述的边缘前向代理模块的操作的补充细节的说明性流程图。
[0044]图9是表示根据一些实施例的在⑶N管理器和⑶N代理之间以及⑶N管理器和结合代理的CDN之间的控制关系的说明性的方框图。
[0045]图1OA是在结合的代理服务器的可替换实施例中的控制流基于接收的HTTP请求是否被加密而分支的说明性的流程图。
[0046]图1OB是其中根据一些实施例的处理确定被利用SSL加密的HTTP请求的说明性的流程图。
[0047]图1OC是其中根据一些实施例的处理确定未被利用SSL加密的HTTP请求的说明性的流程图。
[0048]图11是以计算机系统的示例形式的机器的方框图,在计算机系统内可以执行用于使得机器执行这里讨论的方法中的任何一个或多个的指令。
【具体实施方式】
[0049]下列说明书被呈现以使得任何本领域技术人员根据本发明能够做出并使用计算机已实现的系统和方法以及与结合的CDN反向代理服务器和边缘前向代理有关的制品,并且被在特定实施例、应用和它们需要的背景中提供。对公开的实施例的各种修改将对本领域技术人员容易地清楚,并且这里定义的一般原理可以被应用于其它实施例和应用而不背离本发明的精神和范围。此外,在下面说明书中,为了说明阐述许多细节。但是,本领域技术人将认识到,可以不用使用这些细节来实践本发明。在其它实例中,为了不用不必要细节的模糊本发明,以方框图的形式描述公知的结构和处理。在一个附图中所示的等于或基本上与不同的附图所示的组件相同的组件在两个附图中被由相等的参考数字指示。因此,本发明不意欲局限于示出的实施例,而是将得到与这里公开的原则和特征一致的最宽的范围。
[0050]图4是根据一些实施例的结合的代理系统400的说明性的概括方框图。代理400包括包含一个或多个处理器、存储器和网络连接并且被配置有计算机程序代码以执行下面描述的模块的计算机系统。诸如浏览器或移动客户端之类的用户设备402通过ISP/专用网络404将通信业务发送到公共互联网406。在ISP/专用网络404之内,充当边缘前向代理和⑶N代理二者的包含高速缓存存储410的结合的代理408被安装。结合的代理408和高速缓存410可以被布置在ISP PoP处。由⑶N管理器412分配⑶N配置,其阐述诸如由CDN、源服务器地址和高速缓存设置支持的域的识别之类的由结合的服务器408内的一个或多个CDN服务器使用的规则。
[0051]图5A是显示根据一些实施例的图4所述的结合的代理408的补充细节的说明性功能框图。本领域技术人员将理解硬件计算机系统被配置有计算机程序代码以执行图5A所示的模块。选择器模块502无论直接或通过前向代理(未示出)接收来自用户设备402的请求,并且确定请求是否应当由⑶N代理模块504或由边缘前向代理模块506处理。各个代理服务器模块504、506又确定请求的内容是否被高速缓存在高速缓存内容存储器410内,并且如果不,则指示HTTP客户端模块510通过公共互联网312发送对内容的请求。
[0052]选择器502基于在从用户设备302接收到的请求中的报头信息做出上述选择。下列是来自于HTTP请求的报头信息的示例,请求报头的一部分的例示:
[0053]GET/index.html HTTP/1.1
[0054]Host:www.site, com
[0055]选择器502基于在上述示例中的HTTP报头(例如,www.site, com)中的主机串或基于IP目标地址(未示出)进行选择。虽然图5A示出仅仅一个⑶N代理504,但是应当理解多个CDN代理模块(未示出)可以被与边缘前向代理模块506结合并且选择器502基于HTTP报头内容可以将请求定向到那些⑶N代理的各个⑶N代理。
[0056]图5B是显示根据一些实施例的图4A所述的CDN代理模块504的补充细节的说明性功能框图。SSL确定模块512确定请求是否利用SSL被加密。如果请求被SSL加密,则模块514确定适当的SSL证书以用于此连接(如果有的话)并且获得证书以更进一步解密请求并将进一步解密的请求转发到配置模块516。配置模块516确定请求的处理,其可以包括配置文件(未示出)的使用以确定是否使用例如本地高速缓存、分级高速缓存或动态站点加速。如果配置模块516确定请求将要被从高速缓存服务,则决定模块513确定请求的内容是否已经被在本地高速缓存。如果请求的内容被在本地高速缓存在高速缓存存储器中,则从高速缓存存储器410中检索内容并且将其发送给内容的请求者。如果请求的内容不被在本地高速缓存,则配置模块516通过HTTP客户端510转发请求。典型地,客户端使用普通的HTTP处理普通的(B卩,非SSL) HTTP请求并且使用HTTPS处理SSL保护的HTTPS请求,然而内容供应商(客户)可以在配置中确定需要的方法以访问源-例如甚至当原始请求在HTTPS上时通过HTTP访问。根据由CDN供应商指定的规则,从源服务器(未示出)返回的内容被存储在可高速缓存的内容存储器410中。如果SSL确定模块512确定请求不被SSL加密,则模块514将请求发送到配置模块516以用于如上所述处理。2010年4月11日提交的题为Proxy Server Configured For Hierarchical Caching and Dynamic Site Acceleration的共同拥有的共同未决美国专利申请号12/758,017公开了由CDN代理SSL处理和使用配置文件并且通过引用明确合并于此。
[0057]图5C是显示根据一些实施例的图5A所述的边缘前向代理模块506的补充细节的说明性功能方框图。决定模块518确定请求是否利用SSL加密(或相似的安全HTTP连接)。如果请求/连接被加密-边缘前向代理不能解密它,因为它与内容供应商无关,因此不具有内容供应商的证书。在那种情况下它可以或者阻止连接(不常见)或者绕过HTTP代理模块并且通过或者转发分组(NAT它们,或按原样)、或者打开到源的TCP连接并且按原样转发TCP流而将连接转发到由请求确定的服务器。如果连接不被加密-则决定模块517确定请求的内容是否被在本地高速缓存。如果请求的内容被在本地高速缓存在高速缓存存储器410,则从高速缓存存储器410中检索内容并且将其发送给内容的请求者。如果确定模块518确定请求不被高速缓存,则它通过HTTP客户端510转发请求。应当理解,在一些实施方式中可以在此阶段采用DNS以确定源服务器IP地址。从源服务器(未示出)返回的内容被存储在可高速缓存的内容存储器410中。
[0058]应当理解⑶N代理504或者边缘前向代理模块506中的一个或者另一个在可高速缓存的内容存储器410中存储内容。因此,可以减少重复的可高速缓存的存储器。
[0059]图6是表示根据一些实施例的图5A所述的选择器模块502的操作的补充细节的说明性流程图。决定模块602如上所述参考项502确定在接收的请求之内指示的目标域是否由CDN服务。如果是,则模块604将控制流定向到CDN模块504,其执行下面讨论的图7所述的处理。如果不是,则模块606将控制流定向到边缘前向代理模块506,其执行下面讨论的图8所述的处理。
[0060]图7是表示根据一些实施例的图5A所述的⑶N代理模块504的操作的补充细节的说明性流程图。假定配置模块516确定内容是可高速缓存的(和通过动态站点加速分发的内容相反),则决定模块702确定在分配给CDN代理504的高速缓存存储器之内的第一存储区域是否包含请求的内容的最新的高速缓存的副本。如果是,则模块704通过向请求者提供高速缓存的内容来响应于用户设备请求。如果不是,则模块706将控制流定向到HTTP客户端模块510,其根据由配置模块516的确定通过互联网内容将请求转发到可以提供内容的服务器。
[0061]图8是表示根据一些实施例的图5A所述的边缘前向代理模块506的操作的补充细节的说明性流程图。决定模块802确定在分配给边缘前向代理506的高速缓存存储器410之内的第二存储区域是否包含请求的内容的最新的高速缓存的副本。如果是,则模块804通过向用户设备提供高速缓存的内容来响应于用户设备请求,如果没有,并且请求不被SSL加密,则模块806将控制流定向到HTTP客户端模块510,其将请求转发到通过由请求指示的公共互联网可访问的目标服务器(未示出)。以上提供在处理SSL和非SSL HTTP请求中的差异的补充细节。
[0062]应当理解图5-8中所述的流的模块对应于诸如计算机系统之类的机器的配置以执行由模块识别的活动。如上所述的不同模块可以全部是执行在相同的结合的代理服务器上的、利用相关组件的共享的实施方式的模块,或可以被在具有不同的服务器之间路由的请求的并置的单独服务器上执行。
[0063]图9是表示根据一些实施例的在⑶N管理器和⑶N代理之间与结合的代理的⑶N管理器之间的控制关系的说明性的方框图。CDN管理器通过更新由CDN代理使用的指示它支持什么域/内容供应商、如何响应于特定的HTTP请求和相对于管理高速缓存的特定指示的规则来管理⑶N的配置,仅举几个例子。与边缘前向代理不同,⑶N代理记录它处理的请求以提供对内容供应商对服务收费的能力。关于数据记录、集总和报告的指示也由CDN管理器提供,并且一般记录/收费报告将被发送给将提供结合的集总的收费数据的中央CDN管理器单元。
[0064]⑶N管理器902、904使用到相应的结合的代理910、920的规格化的API,其可以从API到它们自己的PoP而不同。诸如报告新域、清除内容、删除域、发布用于域的新配置之类的⑶N功能全部通过到⑶N管理器API的结合代理完成。表I阐述⑶N管理器和图9所述的结合代理之间的常见的API。换句话说,表I阐述由⑶N管理器应用于⑶N PoP服务器和结合代理二者的功能。
[0065]表I
[0066]
【权利要求】
1.一种装置,包括: 至少一个处理器; 第一本地高速缓存,用于存储由客户端设备请求的、可从内容分发网络(CDN)获得的内容; 第二本地高速缓存,用于存储由客户端设备请求的、不可从CDN获得的内容; 存储器,保存指令,所述指令在由至少一个处理器执行时将使得该装置: 从客户端设备接收数据,所述数据根据安全套接层(SSL)和传输层安全性(TLS)协议中的任何一个被加密; 在不解密数据的情况下,确定数据与CDN相关联; 基于由⑶N提供的配置确定要用于发送数据的网络地址,其中网络地址表示⑶N代理服务器的网络地址和源服务器的网络地址中的任何一个,源服务器与CDN的内容供应商用户相关联; 将数据发送到确定的网络地址。
2.如权利要求1所述的装置,其中,所述装置缺乏为解密数据所必需的SSL证书。
3.如权利要求1所述的装置,其中,所述数据包括加密的HTTP请求。
4.如权利要求1所述的装置,其中,所述装置被编程以至少部分地基于(i)与数据一起接收的IP地址和(ii)代理通过其接收数据的TCP端口中的任何一个来确定数据与⑶N相关联。
5.如权利要求1所述的装置,其中,所述装置被编程(i)以随着数据一起从客户端设备接收客户端设备正在将数据定向到的未加密的主机名称,以及(ii)以至少部分地基于未加密的主机名称确定数据与CDN相关联。
6.如权利要求1所述的装置,其中,所述装置被编程以 利用传输层安全性(TLS)扩展协议从客户端设备接收客户端设备正在将数据定向到的未加密的主机名称,并且 至少部分地基于未加密的主机名称确定数据与⑶N相关联。
7.如权利要求1所述的装置,其中,所述装置被编程以调用由CDN提供的路由服务和由CDN提供的IP加速服务中的任何一个以传输数据。
8.如权利要求1所述的装置,其中,所述装置位于与互联网服务供应商和移动载体中的任何一个相关联的存在点中,并且数据从无线的客户端设备接收。
9.如权利要求1所述的装置,其中,所述装置是与互联网服务供应商和移动载体中的任何一个相关联的网关。
10.如权利要求1所述的装置,其中,所述装置被编程以从与CDN相关联的管理模块接收配置。
11.如权利要求1所述的装置,其中,所述配置包括与数据一起接收的目标IP地址和⑶N代理服务器的IP地址或源服务器的IP地址之间的映射。
12.—种在代理服务器中操作的方法,包括: 将由客户端设备请求的、可从内容分发网络(CDN)获得的内容存储在第一本地高速缓存中; 将由客户端设备请求的、不可从CDN获得的内容存储在第二本地高速缓存中;从客户端设备接收数据,所述数据根据安全套接层(SSL)和传输层安全性(TLS)协议中的任何一个被加密; 在不解密数据的情况下确定数据与CDN相关联; 基于由⑶N提供的配置确定要用于发送数据的网络地址,其中网络地址表示⑶N代理服务器的网络地址和源服务器的网络地址中的任何一个,源服务器与CDN的内容供应商用户相关联; 将数据发送到确定的网络地址。
13.如权利要求12所述的方法,其中数据包括加密的HTTP请求。
14.如权利要求12所述的方法,还包括至少部分地基于(i)与数据一起接收的IP地址和(ii )代理通过其接收数据的TCP端口中的任何一个,确定数据与⑶N相关联。
15.如权利要求12所述的方法,还包括(i)随着数据一起从客户端设备接收客户端设备正在将数据定向到的未加密的主机名称,以及(ii)至少部分地基于未加密的主机名称确定数据与CDN相关联。
16.如权利要求12所述的方法,还包括 利用传输层安全性(TLS)扩展协议从客户端设备接收客户端设备正在将数据定向到的未加密的主机名称,以及 至少部分地基于未加密的主机名称确定数据与⑶N相关联。
17.如权利要求12所述的方法,还包括调用由CDN提供的路由服务和由CDN提供的IP加速服务中的任何一个以传输数据。
18.如权利要求12所述的方法,其中代理服务器位于与互联网服务供应商和移动载体中的任何一个相关联的存在点中,并且数据从无线客户端设备中接收。
19.如权利要求12所述的方法,其中代理服务器是与互联网服务供应商和移动载体中的任何一个相关联的网关。
20.如权利要求12所述的方法,还包括从与⑶N相关联的管理模块接收配置。
21.如权利要求12所述的方法,其中所述配置包括与数据一起接收的目标IP地址和⑶N代理服务器的IP地址或源服务器的IP地址之间的映射。
22.—种装置,包括: 至少一个处理器; 本地高速缓存,用于存储由客户端设备请求的、可从内容分发网络(CDN)获得的内容; 存储器,保存指令,所述指令在由至少一个处理器执行时使得所述装置: 从客户端设备接收数据,所述数据根据安全套接层(SSL)和传输层安全性(TLS)协议中的任何一个被加密; 在不解密数据的情况下,确定数据与CDN相关联; 基于由⑶N提供的配置确定要用于发送数据的网络地址,其中网络地址表示⑶N代理服务器的网络地址和源服务器的网络地址中的任何一个,源服务器与CDN的内容供应商用户相关联; 将数据发送到确定的网络地址。 其中所述装置被编程以随着数据一起从客户端设备接收客户端设备正在将数据定向到的未加密的主机名称,并且以至少部分地基于未加密的主机名称确定数据与CDN相关联。
23.如权利要求22所述的装置,其中未加密的主机名称利用传输层安全性(TLS)扩展协议接收。
24.如权利要求22所述的装置,其中数据包括加密的HTTP请求。
25.如权利要求22所述的装置,其中所述装置位于与互联网服务供应商和移动载体中的任何一个相关联的存在点中,并且数据从无线的客户端设备接收。
26.如权利要求22所述的装置,其中所述装置是与互联网服务供应商和移动载体中的任何一个相关联的网关。
27.—种响应于对可通过互联网访问的内容的SSL加密的HTTP请求的方法,包括: 确定所述请求是否针对由CDN服务的内容; 如果确定所述请求针对由CDN服务的内容,则如果请求的内容不存储在高速缓存存储器中,则利用配置规则将请求通过互联网转发到服务器以服务请求的内容。 如果确定所述请求不针对由CDN服务的内容,则将请求通过互联网转发到服务器以服务请求的内容而不利用配置规则。
28.—种响应于对可通过互联网访问的内容的HTTP请求的方法,包括: 确定HTTP请求是否利用SSL被加密 确定所述请求是否针对由CDN服务的内容; 如果确定所述请求针对由CDN服务的不被SSL加密的内容,则如果请求的内容被存储在高速缓存存储器中,则访问高速缓存存储器以检索内容,并且如果请求的内容没有存储在高速缓存存储器中,则访问由⑶N使用的配置规则并且利用配置规则来将请求通过互联网转发到服务器以服务请求的内容; 如果确定所述请求不针对不由CDN服务的不被SSL加密的内容,则如果请求的内容被存储在高速缓存存储器中,则访问高速缓存存储器以检索内容,并且如果内容没有存储在高速缓存存储器中,则将请求通过互联网转发到服务器以服务请求的内容而不利用配置规则; 如果确定所述请求针对由CDN服务的SSL加密的内容,则如果请求的内容没有存储在高速缓存存储器中,则利用配置规则将请求通过互联网转发到服务器以服务请求的内容;以及 如果确定所述请求针对不由CDN服务的SSL加密的内容,则将请求通过互联网转发到服务器以服务请求的内容而不利用配置规则。
【文档编号】H04L29/12GK103563335SQ201280021841
【公开日】2014年2月5日 申请日期:2012年5月7日 优先权日:2011年5月5日
【发明者】R·泽哈维, U·崔鲁格曼, D·崔埃, I·萨弗鲁提 申请人:阿卡麦科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1