CN117061590B - Cdn针对url封禁和定制封禁内容的方法及设备 - Google Patents

Cdn针对url封禁和定制封禁内容的方法及设备 Download PDF

Info

Publication number
CN117061590B
CN117061590B CN202311300343.5A CN202311300343A CN117061590B CN 117061590 B CN117061590 B CN 117061590B CN 202311300343 A CN202311300343 A CN 202311300343A CN 117061590 B CN117061590 B CN 117061590B
Authority
CN
China
Prior art keywords
cdn
content
forbidden
request
blocked
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311300343.5A
Other languages
English (en)
Other versions
CN117061590A (zh
Inventor
王永强
韩勇
韩丰景
吴璟
王红涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unicom Online Information Technology Co Ltd
Original Assignee
China Unicom Online Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Unicom Online Information Technology Co Ltd filed Critical China Unicom Online Information Technology Co Ltd
Priority to CN202311300343.5A priority Critical patent/CN117061590B/zh
Publication of CN117061590A publication Critical patent/CN117061590A/zh
Application granted granted Critical
Publication of CN117061590B publication Critical patent/CN117061590B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了CDN针对URL封禁和定制封禁内容的方法及设备,属于互联网技术领域。该方法包括:业务管理将封禁内容发送到封禁中心;封禁中心接收封禁内容;CDN核心服务器与封禁中心保持心跳,通过GET请求获得封禁内容;CDN核心服务器接收封禁内容并进行解析,将封禁URL对应的封禁资源全部存入CDN核心服务器的封禁缓存块中;CDN边缘服务器接收用户的URL请求,并转发给CDN核心服务器,CDN核心服务器查询封禁缓存块,如果URL请求是封禁URL,则将从封禁缓存块中查询到的与封禁的URL对应的特定内容响应至CDN边缘服务器,CDN边缘服务器将特定内容反馈给用户。本申请降低了整体的CPU消耗,因为CDN核心服务器数量远远少于边缘,所以大大降低封禁服务器的压力。

Description

CDN针对URL封禁和定制封禁内容的方法及设备
技术领域
本申请属于互联网技术领域,特别涉及一种CDN针对URL封禁和定制封禁内容的方法及设备。
背景技术
目前在CDN服务器的URL封禁中,采用的是封禁接口使用封禁中心向每一个CDN服务器通过POST注入的方式,在接入层进行封禁,这样针对用户的每一条请求都需要查询共享内存的黑名单,浪费接入层的cpu;并且,当服务器压力大的时候,可能处理不及时导致封禁失败;另外,封禁的内容与用户无关,无法按照客户维度定制封禁内容;同时,封禁服务器需要对所有的边缘服务器通信,压力大。
针对上述问题,提出本申请的一种CDN针对URL封禁和定制封禁内容的方法及设备。
发明内容
为了解决所述现有技术的不足,本申请提供了一种CDN针对URL封禁和定制封禁内容的方法及设备,用于解决现有技术中的CDN的封禁造成多服务器压大容易造成封禁失败且造成CPU浪费,以及封禁内容无法定制的技术问题。
本申请所要达到的技术效果通过以下方案实现:
第一方面,本申请提供一种CDN针对URL封禁和定制封禁内容的方法,所述方法包括:
业务管理将封禁内容发送到封禁中心,所述封禁内容与封禁URL,所述封禁URL对应的域名,以及状态码相关;
所述封禁中心接收所述封禁内容并对所述封禁内容进行维护;
CDN核心服务器与所述封禁中心保持心跳,所述CDN核心服务器周期性地向所述封禁中心发送GET请求,所述GET请求用于请求所述封禁内容,在所述CDN核心服务器第一次向所述封禁中心发送第一GET请求的情况下,所述第一GET请求不携带标签参数,所述封禁中心将其维护的最新的标签和所有所述封禁内容均发送给所述CDN核心服务器,所述CDN核心服务器将所述封禁中心发送过来的最新标签存储下来,后续的心跳交互中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新的标签和所述新的标签对应的新增的所述封禁内容至所述CDN核心服务器;
所述CDN核心服务器接收所述新的标签和所述新的标签对应的所述新增的封禁内容并进行解析,将每一个封禁URL对应的封禁资源全部存入所述CDN核心服务器的封禁缓存块中;
用户向CDN边缘服务器发送URL请求,所述CDN边缘服务器将所述URL请求转发给所述CDN核心服务器,所述CDN核心服务器针对所述URL请求查询所述封禁缓存块,如果所述URL请求是封禁的URL,则所述CDN核心服务器将从所述封禁缓存块中查询到的与所述封禁的URL对应的特定内容响应至所述CDN边缘服务器,所述CDN边缘服务器将所述特定内容反馈给所述用户。
在一些实施例中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新增的封禁内容至所述CDN核心服务器,包括:
所述持续GET请求中携带所述CDN核心服务器的节点信息和上一次收到的所述封禁内容对应的目标标签,所述封禁中心收到所述持续GET请求后进行判断,如果在所述封禁中心不存在与所述目标标签对应的封禁内容,则所述封禁中心响应201状态码至所述CDN核心服务器,如果在所述封禁中心存在于所述目标标签对应的新增的封禁内容,则所述封禁中心响应200状态码至所述CDN核心服务器,其中所述200状态码的内容包括:新的标签和所述新的标签对应的所述新增的封禁内容。
在一些实施例中,所述持续GET请求表示除了所述第一GET请求之外的其他GET请求。
在一些实施例中,所述封禁中心每次向所述CDN核心服务器响应内容采用json格式,所述json格式包括如下参数:
Version,表示代表版本号;
host1,表示域名;
lock,表示要封禁的URL;
addr,表示封禁内容的地址。
在一些实施例中,所述方法还包括:所述CDN边缘服务器将所述特定内容反馈给所述用户的同时,也将所述封禁的URL相关的封禁信息存储起来;
当需要解除封禁时,所述业务管理通过刷新系统进行全网刷新。
第二方面,本申请提供一种CDN针对URL封禁和定制封禁内容的设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
业务管理将封禁内容发送到封禁中心,所述封禁内容与封禁URL,所述封禁URL对应的域名,以及状态码相关;
所述封禁中心接收所述封禁内容并对所述封禁内容进行维护;
CDN核心服务器与所述封禁中心保持心跳,所述CDN核心服务器周期性地向所述封禁中心发送GET请求,所述GET请求用于请求所述封禁内容,在所述CDN核心服务器第一次向所述封禁中心发送第一GET请求的情况下,所述第一GET请求不携带标签参数,所述封禁中心将其维护的最新的标签和所有所述封禁内容均发送给所述CDN核心服务器,所述CDN核心服务器将所述封禁中心发送过来的最新标签存储下来,后续的心跳交互中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新的标签和所述新的标签对应的新增的所述封禁内容至所述CDN核心服务器;
所述CDN核心服务器接收所述新的标签和所述新的标签对应的所述新增的封禁内容并进行解析,将每一个封禁URL对应的封禁资源全部存入所述CDN核心服务器的封禁缓存块中;
用户向CDN边缘服务器发送URL请求,所述CDN边缘服务器将所述URL请求转发给所述CDN核心服务器,所述CDN核心服务器针对所述URL请求查询所述封禁缓存块,如果所述URL请求是封禁的URL,则所述CDN核心服务器将从所述封禁缓存块中查询到的与所述封禁的URL对应的特定内容响应至所述CDN边缘服务器,所述CDN边缘服务器将所述特定内容反馈给所述用户。
在一些实施例中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新增的封禁内容至所述CDN核心服务器,包括:
所述持续GET请求中携带所述CDN核心服务器的节点信息和上一次收到的所述封禁内容对应的目标标签,所述封禁中心收到所述持续GET请求后进行判断,如果在所述封禁中心不存在与所述目标标签对应的封禁内容,则所述封禁中心响应201状态码至所述CDN核心服务器,如果在所述封禁中心存在于所述目标标签对应的新增的封禁内容,则所述封禁中心响应200状态码至所述CDN核心服务器,其中所述200状态码的内容包括:新的标签和所述新的标签对应的所述新增的封禁内容。
在一些实施例中,所述持续GET请求表示除了所述第一GET请求之外的其他GET请求。
在一些实施例中,所述封禁中心每次向所述CDN核心服务器响应内容采用json格式,所述json格式包括如下参数:
Version,表示代表版本号;
host1,表示域名;
lock,表示要封禁的URL;
addr,表示封禁内容的地址。
在一些实施例中,所述方法还包括:所述CDN边缘服务器将所述特定内容反馈给所述用户的同时,也将所述封禁的URL相关的封禁信息存储起来;
当需要解除封禁时,所述业务管理通过刷新系统进行全网刷新。
第三方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一项所述的方法。
通过本申请实施例提供的CDN针对URL封禁和定制封禁内容的方法及设备,该方法中因为封禁发生在CDN核心服务器,这样对于CDN边缘服务器而言,不需要每次请求都查询共享内存,而对于CDN核心服务器而言,封禁的请求和正常的资源没有区别,完全没有引入额外的工作量,降低了整体的 CPU 消耗;每一个域名的封禁内容可以单独定制,且封禁中心只和CDN核心服务器交互,因为CDN核心服务器数量远远少于边缘,所以大大降低封禁服务器的压力。
附图说明
为了更清楚地说明本申请实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例中的CDN针对URL封禁和定制封禁内容的方法的流程图;
图2为本申请一实施例中的CDN针对URL封禁和定制封禁内容的方法的具体实现图;
图3为本申请一实施例中的设备的示意框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,除非另外定义,本申请一个或多个实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
相关技术中,当前情况下,一般CDN的服务架构采取业务接入+cache 两个软件(比如 nginx+cache),其中 nginx 作为接入层负责处理网络请求的业务逻辑,cache负责缓存内容,当前的CDN的URL封禁功能都是采取在接入层进行封禁,通过特定的封禁的接口注入,将需要封禁的URL打包成一个body,通过对接入层的nginx发送一个POST请求,nginx通过解析请求body,解析出每一条需要封禁的URL,将URL依次注入到 nginx的共享内存并存储起来,在nginx真实进行CDN服务的时候,CDN收到网民请求,首先查询URL封禁列表的共享内存,确认此次请求的URL在不在 URL黑名单里面,如果在黑名单里面的直接予以封禁,响应特定的内容和状态码(403状态码,和403 状态码的相关内容)。
上述方案会带来如下缺点:
1、在接入层封禁,每一条请求都需要先查询共享内存,确认不在URL封禁黑名单后才进行真实的CDN服务,每条请求在接入层都要查询,浪费设备的cpu。
2、封禁接口使用封禁中心向每一个CDN服务器POST注入的方式,当CDN服务器的服务压力较大的时候,如果针对封禁内容解析不及时,可能导致封禁失败。
3、由于URL封禁是一个全局功能,所以封禁后相应的的内容和状态码全部是一致的,无法按照服务维度定制封禁内容和状态码。
4、封禁中心服务器需要对所有的CDN边缘服务器通信,进行封禁内容的注入,封禁中心服务器压力大。
5 、封禁的内容全部在边缘的共享内存,没有利用好上层的收敛能力。
因此,需要采用本申请提供的CDN针对URL封禁和定制封禁内容的方法来解决上述问题。
下面结合附图,详细说明本申请的各种非限制性实施方式。
首先,参照图1,对本申请的CDN针对URL封禁和定制封禁内容的方法进行详细说明。
如图1所示,本申请提供一种CDN针对URL封禁和定制封禁内容的方法,所述方法包括:
S101:业务管理将封禁内容发送到封禁中心,所述封禁内容与封禁URL,所述封禁URL对应的域名,以及状态码相关;
S102:所述封禁中心接收所述封禁内容并对所述封禁内容进行维护;
S103:CDN核心服务器与所述封禁中心保持心跳,所述CDN核心服务器周期性地向所述封禁中心发送GET请求,所述GET请求用于请求所述封禁内容,在所述CDN核心服务器第一次向所述封禁中心发送第一GET请求的情况下,所述第一GET请求不携带标签参数,所述封禁中心将其维护的最新的标签和所有所述封禁内容均发送给所述CDN核心服务器,所述CDN核心服务器 将所述封禁中心发送过来的最新标签存储下来,后续的心跳交互中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新的标签和所述新的标签对应的新增的所述封禁内容至所述CDN核心服务器;
S104:所述CDN核心服务器接收所述新的标签和所述新的标签对应的所述新增的封禁内容并进行解析,将每一个封禁URL对应的封禁资源全部存入所述CDN核心服务器的封禁缓存块中;
S105:用户向CDN边缘服务器发送URL请求,所述CDN边缘服务器将所述URL请求转发给所述CDN核心服务器,所述CDN核心服务器针对所述URL请求查询所述封禁缓存块,如果所述URL请求是封禁的URL,则所述CDN核心服务器将从所述封禁缓存块中查询到的与所述封禁的URL对应的特定内容响应至所述CDN边缘服务器,所述CDN边缘服务器将所述特定内容反馈给所述用户。
在一些实施例中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新增的封禁内容至所述CDN核心服务器,包括:
所述持续GET请求中携带所述CDN核心服务器的节点信息和上一次收到的所述封禁内容对应的目标标签,所述封禁中心收到所述持续GET请求后进行判断,如果在所述封禁中心不存在与所述目标标签对应的封禁内容,则所述封禁中心响应201状态码至所述CDN核心服务器,如果在所述封禁中心存在于所述目标标签对应的新增的封禁内容,则所述封禁中心响应200状态码至所述CDN核心服务器,其中所述200状态码的内容包括:新的标签和所述新的标签对应的所述新增的封禁内容。
在一些实施例中,所述持续GET请求表示除了所述第一GET请求之外的其他GET请求。
在一些实施例中,所述封禁中心每次向所述CDN核心服务器响应内容采用json格式,所述json格式包括如下参数:
Version,表示代表版本号;
host1,表示域名;
lock,表示要封禁的URL;
addr,表示封禁内容的地址。
具体地,封禁中心通过心跳响应给CDN核心服务器的内容采取json格式
json实例如下所示:
[{"version":"123456"},{"host1":{"lock":["URL1","URL2","URL3"],"addr":"www.lock.com?host=host1"}},{"host2":{"lock":["URL6","URL7","URL8"],"addr":"www.lock.com?host=host2"}}]。
上述示例中,version代表版本号,host1域名下,lock代表要封禁的URL;需要封禁的URL,例如包括URL1,URL2,URL3,addr代表封禁内容的地址;每一个域名封禁的内容为一个格式;
同样地,host2域名下需要封禁的URL ,URL6,URL7,URL8。
CDN核心服务器(或者说其中的Nginx)在解析 version的时候,记录下来,后续的心跳态标签为version的值,到host1的封禁列表的时候,nginx有指定cache回源地址,回源URL和缓存cache-key的能力。具体地,
1、nginx往cache发送一条请求URL为addr的请求,指定回源地址为封禁中心的地址,cache-key设置为addr;将域名host1对应的特定封禁内容缓存下来(假设封禁中心响应200状态码,hello的body内容)。
2、nginx依次往cache发送请求URL为封禁URL的请求(以URL1举例),发送请求URL为URL1;指定回源地址为本机cache,cache-key为URL1,回源URL为addr,这样在回到本机cache的时候就会命中上面已经缓存的内容,复制一份作为URL1的内容。以此类推,针对URL2和URL3在缓存里的内容都是第一条的缓存内容的复制(这样,每一个域名封禁内容的获取只回到封禁中心1次,其余的全部本机复制,减少封禁中心的压力)。
3、对于所有的封禁host依次重复上述过程,将每一条封禁URL都给以一个自己对应的缓存内容。
在一些实施例中,所述方法还包括:所述CDN边缘服务器将所述特定内容反馈给所述用户的同时,也将所述封禁的URL相关的封禁信息存储起来;
当需要解除封禁时,所述业务管理通过刷新系统进行全网刷新。
示例性地,解除封禁的过程包括:
1、业务管理提交解禁URL到封禁中心,封禁中心负责维护封禁信息。
2、封禁中心调用CDN刷新系统,针对解禁的URL进行刷新。
3、由于封禁内容已经被刷新,用户请求对应资源后可得到真实内容。
通过本申请实施例提供的CDN针对URL封禁和定制封禁内容的方法及设备,该方法中因为封禁发生在CDN核心服务器,这样对于CDN边缘服务器而言,不需要每次请求都查询共享内存,而对于CDN核心服务器而言,封禁的请求和正常的资源没有区别,完全没有引入额外的工作量,降低了整体的 CPU 消耗;每一个域名的封禁内容可以单独定制,且封禁中心只和CDN核心服务器交互,因为CDN核心服务器数量远远少于边缘,所以大大降低封禁服务器的压力。
下面通过另一示例来说明本申请的CDN针对URL封禁和定制封禁内容的方法,如图2所示,图中示出了本方法的系统以及流程,其中该系统包括:业务管理,封禁中心,刷新系统,客户端(与本申请中的用户指代相同),CDN边缘节点(与本申请中的CDN边缘服务器指代相同),CDN核心节点(与本申请中的CDN核心服务器指代相同)。
整体实现为:
封禁的逻辑从业务接入层转移到CDN缓存层,CDN缓存软件专门开辟一个空间来存储这些封禁内容,该空间是独立于存储CDN正常资源的空间,确保封禁内容不会因为空间问题被覆盖导致封禁失败;由CDN的缓存层或者特定缓存块(即本申请中的封禁缓存块)响应封禁内容。
技术的逻辑步骤:
1)业务管理提交封禁URL到封禁中心,维护封禁信息。
2)延迟提交刷新刷掉已缓存内容,实现边缘访问到封禁内容。
3)将现有的封禁接口使用封禁中心向每一个CDN服务器POST注入的方式,改为封禁中心周期性期向CDN核心节点发送心跳(心跳里面有被封禁的所有域名),通知核心层封禁拉取。
4)只有CDN核心节点按照每一个域名,向封禁中心发送 GET 请求来获取 URL 封禁列表和对应的封禁内容(json 格式,每一个域名可以定制一份内容),这个域名维度的内容,在CDN核心节点的缓存层单独缓存封禁内容,使用所有封禁请求的特定的URL,带采用不同的域名参数来保存,每一个CDN核心节点都根据域名和特定URL来缓存这份封禁资源。在具体的URL封禁的时候,服务器接续收URL封禁列表,根据封禁的URL根据从属的域名,在本机回源,回源路径是那条封禁的URL,这样就使得每一条URL在缓存层缓存的内容就都是特定域名的封禁内容,达到封禁效果。
5)CDN边缘节点不做任何内容,因为CDN内部路径是边缘会转发请求到上层,在上层封禁的,在边缘拿到后自然缓存起来,就达到了封禁的效果。
6)解除封禁只需要全网刷新即可。
其中如图2中所示,包括多个步骤:
1、客户端向CDN边缘节点发送URL请求,用于请求URL资源;
2、CDN边缘节点将该URL请求发送至CDN核心节点,用于请求URL资源;
3、CDN核心节点查询CDN缓存层中缓存的内容,确定该URL请求为封禁的URL,则返回对应的封禁内容至CDN边缘节点;
4、CDN边缘节点将接收到的对应的封禁内容发送给客户端,同时也缓存与该封禁的URL相关的封禁信息,这样如果下次收到针对该封禁的URL的请求,则可以直接反馈对应的封禁内容给客户端。
6、CDN核心节点向封禁中心发送心跳通知,用于请求封禁内容,例如封禁列表;
7、封禁中心向CDN核心节点反馈封禁内容相关信息,例如封禁列表。
针对解除封禁的刷新过程,业务管理可以向刷新系统提交刷新,刷新系统则基于命名完成系统的刷新。
本申请的CDN针对URL封禁和定制封禁内容的方法,具有如下关键点:
1)URL封禁的功能,从CDN接入层的nginx迁移到CDN的缓存,接入层不需要在每条请求都做一次黑名单匹配。
2)CDN核心节点的缓存软件专门开辟一个空间来存储这些封禁内容,独立于存储CDN正常资源的空间,确保封禁内容不会因为空间问题被覆盖导致封禁失败。
3)封禁中心服务器和CDN边缘服务器的交互接口从封禁中心主动往CDN服务器注入变成CDN服务器向封禁中心服务器拉取。
4)封禁中心服务器只需要和CDN服务器的上层交互,不再需要和每一个CDN边缘服务器交互。
通过本申请的CDN针对URL封禁和定制封禁内容的方法,能够实现如下效果:
1、因为封禁发生在缓存层,这样对于接入层而言,不需要每次请求都查询共享内存,而对于缓存层而言,封禁的请求和正常的资源没有区别,完全没有引入额外的工作量,降低了整体的 CPU 消耗。
2、封禁与解封更加便捷,解封只是刷新。
3、每一个域名的封禁内容可以单独定制。
4、封禁服务器只和CDN上层服务器交互,因为上层服务器数量远远少于边缘,所以大大降低封禁服务器的压力。
第二方面,本申请提供一种CDN针对URL封禁和定制封禁内容的设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
业务管理将封禁内容发送到封禁中心,所述封禁内容与封禁URL,所述封禁URL对应的域名,以及状态码相关;
所述封禁中心接收所述封禁内容并对所述封禁内容进行维护;
CDN核心服务器与所述封禁中心保持心跳,所述CDN核心服务器周期性地向所述封禁中心发送GET请求,所述GET请求用于请求所述封禁内容,在所述CDN核心服务器第一次向所述封禁中心发送第一GET请求的情况下,所述第一GET请求不携带标签参数,所述封禁中心将其维护的最新的标签和所有所述封禁内容均发送给所述CDN核心服务器,所述CDN核心服务器将所述封禁中心发送过来的最新标签存储下来,后续的心跳交互中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新的标签和所述新的标签对应的新增的所述封禁内容至所述CDN核心服务器;
所述CDN核心服务器接收所述新的标签和所述新的标签对应的所述新增的封禁内容并进行解析,将每一个封禁URL对应的封禁资源全部存入所述CDN核心服务器的封禁缓存块中;
用户向CDN边缘服务器发送URL请求,所述CDN边缘服务器将所述URL请求转发给所述CDN核心服务器,所述CDN核心服务器针对所述URL请求查询所述封禁缓存块,如果所述URL请求是封禁的URL,则所述CDN核心服务器将从所述封禁缓存块中查询到的与所述封禁的URL对应的特定内容响应至所述CDN边缘服务器,所述CDN边缘服务器将所述特定内容反馈给所述用户。
在一些实施例中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新增的封禁内容至所述CDN核心服务器,包括:
所述持续GET请求中携带所述CDN核心服务器的节点信息和上一次收到的所述封禁内容对应的目标标签,所述封禁中心收到所述持续GET请求后进行判断,如果在所述封禁中心不存在与所述目标标签对应的封禁内容,则所述封禁中心响应201状态码至所述CDN核心服务器,如果在所述封禁中心存在于所述目标标签对应的新增的封禁内容,则所述封禁中心响应200状态码至所述CDN核心服务器,其中所述200状态码的内容包括:新的标签和所述新的标签对应的所述新增的封禁内容。
在一些实施例中,所述持续GET请求表示除了所述第一GET请求之外的其他GET请求。
在一些实施例中,所述封禁中心每次向所述CDN核心服务器响应内容采用json格式,所述json格式包括如下参数:
Version,表示代表版本号;
host1,表示域名;
lock,表示要封禁的URL;
addr,表示封禁内容的地址。
在一些实施例中,所述方法还包括:所述CDN边缘服务器将所述特定内容反馈给所述用户的同时,也将所述封禁的URL相关的封禁信息存储起来;
当需要解除封禁时,所述业务管理通过刷新系统进行全网刷新。
本实施例的设备能够实现本申请中的方法的所有技术效果,此处不再赘述。
需要说明的是,本申请一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还公开一种电子设备;
具体地,图3示出了本实施例所提供的一种CDN针对URL封禁和定制封禁内容的方法的电子设备的硬件结构示意图, 该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线 450。其中,处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本申请实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如,USB、网线等)实现通信,也可以通过无线方式(例如,移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如,处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的CDN针对URL封禁和定制封禁内容的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的CDN针对URL封禁和定制封禁内容的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的CDN针对URL封禁和定制封禁内容的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以避免使本申请一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (8)

1.一种CDN针对URL封禁和定制封禁内容的方法,其特征在于,所述方法包括:
业务管理将封禁内容发送到封禁中心,所述封禁内容与封禁URL,所述封禁URL对应的域名,以及状态码相关;
所述封禁中心接收所述封禁内容并对所述封禁内容进行维护;
CDN核心服务器与所述封禁中心保持心跳,所述CDN核心服务器周期性地向所述封禁中心发送GET请求,所述GET请求用于请求所述封禁内容;在所述CDN核心服务器第一次向所述封禁中心发送第一GET请求的情况下,所述第一GET请求不携带标签参数,所述封禁中心将其维护的最新的标签和所有所述封禁内容均发送给所述CDN核心服务器,所述CDN核心服务器将所述封禁中心发送过来的最新标签存储下来;后续的心跳交互中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新的标签和所述新的标签对应的新增的所述封禁内容至所述CDN核心服务器;
所述CDN核心服务器接收所述新的标签和所述新的标签对应的所述新增的封禁内容并进行解析,将每一个封禁URL对应的封禁资源全部存入所述CDN核心服务器的封禁缓存块中;
用户向CDN边缘服务器发送URL请求,所述CDN边缘服务器将所述URL请求转发给所述CDN核心服务器,所述CDN核心服务器针对所述URL请求查询所述封禁缓存块,如果所述URL请求是封禁的URL,则所述CDN核心服务器将从所述封禁缓存块中查询到的与所述封禁的URL对应的特定内容响应至所述CDN边缘服务器,所述CDN边缘服务器将所述特定内容反馈给所述用户;
所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新增的封禁内容至所述CDN核心服务器,包括:
所述持续GET请求中携带所述CDN核心服务器的节点信息和上一次收到的所述封禁内容对应的目标标签,所述封禁中心收到所述持续GET请求后进行判断,如果在所述封禁中心不存在与所述目标标签对应的封禁内容,则所述封禁中心响应201状态码至所述CDN核心服务器,如果在所述封禁中心存在于所述目标标签对应的新增的封禁内容,则所述封禁中心响应200状态码至所述CDN核心服务器,其中所述200状态码的内容包括:新的标签和所述新的标签对应的所述新增的封禁内容。
2.如权利要求1所述的CDN针对URL封禁和定制封禁内容的方法,其特征在于,所述持续GET请求表示除了所述第一GET请求之外的其他GET请求。
3.如权利要求2所述的CDN针对URL封禁和定制封禁内容的方法,其特征在于,所述封禁中心每次向所述CDN核心服务器响应内容采用json格式,所述json格式包括如下参数:
Version,表示代表版本号;
host1,表示域名;
lock,表示要封禁的URL;
addr,表示封禁内容的地址。
4.如权利要求1所述的CDN针对URL封禁和定制封禁内容的方法,其特征在于,所述方法还包括:所述CDN边缘服务器将所述特定内容反馈给所述用户的同时,也将所述封禁的URL相关的封禁信息存储起来;
当需要解除封禁时,所述业务管理通过刷新系统进行全网刷新。
5.一种CDN针对URL封禁和定制封禁内容的设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:
业务管理将封禁内容发送到封禁中心,所述封禁内容与封禁URL,所述封禁URL对应的域名,以及状态码相关;
所述封禁中心接收所述封禁内容并对所述封禁内容进行维护;
CDN核心服务器与所述封禁中心保持心跳,所述CDN核心服务器周期性地向所述封禁中心发送GET请求,所述GET请求用于请求所述封禁内容,在所述CDN核心服务器第一次向所述封禁中心发送第一GET请求的情况下,所述第一GET请求不携带标签参数,所述封禁中心将其维护的最新的标签和所有所述封禁内容均发送给所述CDN核心服务器,所述CDN核心节点将所述封禁中心发送过来的最新标签存储下来,后续的心跳交互中,所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新的标签和所述新的标签对应的新增的所述封禁内容至所述CDN核心服务器;
所述CDN核心服务器接收所述新的标签和所述新的标签对应的所述新增的封禁内容并进行解析,将每一个封禁URL对应的封禁资源全部存入所述CDN核心服务器的封禁缓存块中;
用户向CDN边缘服务器发送URL请求,所述CDN边缘服务器将所述URL请求转发给所述CDN核心服务器,所述CDN核心服务器针对所述URL请求查询所述封禁缓存块,如果所述URL请求是封禁的URL,则所述CDN核心服务器将从所述封禁缓存块中查询到的与所述封禁的URL对应的特定内容响应至所述CDN边缘服务器,所述CDN边缘服务器将所述特定内容反馈给所述用户;
所述CDN核心服务器以标签作为内容版本的标志向所述封禁中心发送持续GET请求,所述封禁中心针对所述持续GET请求响应新增的封禁内容至所述CDN核心服务器,包括:
所述持续GET请求中携带所述CDN核心服务器的节点信息和上一次收到的所述封禁内容对应的目标标签,所述封禁中心收到所述持续GET请求后进行判断,如果在所述封禁中心不存在与所述目标标签对应的封禁内容,则所述封禁中心响应201状态码至所述CDN核心服务器,如果在所述封禁中心存在于所述目标标签对应的新增的封禁内容,则所述封禁中心响应200状态码至所述CDN核心服务器,其中所述200状态码的内容包括:新的标签和所述新的标签对应的所述新增的封禁内容。
6.如权利要求5所述的CDN针对URL封禁和定制封禁内容的设备,其特征在于,所述持续GET请求表示除了所述第一GET请求之外的其他GET请求。
7.如权利要求6所述的CDN针对URL封禁和定制封禁内容的设备,其特征在于,所述封禁中心每次向所述CDN核心服务器响应内容采用json格式,所述json格式包括如下参数:
Version,表示代表版本号;
host1,表示域名;
lock,表示要封禁的URL;
addr,表示封禁内容的地址。
8.如权利要求5所述的CDN针对URL封禁和定制封禁内容的设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:所述CDN边缘服务器将所述特定内容反馈给所述用户的同时,也将所述封禁的URL相关的封禁信息存储起来;
当需要解除封禁时,所述业务管理通过刷新系统进行全网刷新。
CN202311300343.5A 2023-10-10 2023-10-10 Cdn针对url封禁和定制封禁内容的方法及设备 Active CN117061590B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311300343.5A CN117061590B (zh) 2023-10-10 2023-10-10 Cdn针对url封禁和定制封禁内容的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311300343.5A CN117061590B (zh) 2023-10-10 2023-10-10 Cdn针对url封禁和定制封禁内容的方法及设备

Publications (2)

Publication Number Publication Date
CN117061590A CN117061590A (zh) 2023-11-14
CN117061590B true CN117061590B (zh) 2024-02-27

Family

ID=88659373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311300343.5A Active CN117061590B (zh) 2023-10-10 2023-10-10 Cdn针对url封禁和定制封禁内容的方法及设备

Country Status (1)

Country Link
CN (1) CN117061590B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9392075B1 (en) * 2015-07-23 2016-07-12 Haproxy Holdings, Inc. URLs with IP-generated codes for link security in content networks
JP2018182618A (ja) * 2017-04-18 2018-11-15 富士通株式会社 パケット処理装置、パケット処理方法、及び、パケット処理プログラム
CN111797352A (zh) * 2020-06-30 2020-10-20 广州市百果园信息技术有限公司 封禁帐号的方法、装置及封禁系统
CN113949581A (zh) * 2021-10-22 2022-01-18 中国建设银行股份有限公司 地址封禁方法、装置及系统、存储介质及电子设备
CN114070652A (zh) * 2022-01-12 2022-02-18 北京金山云网络技术有限公司 Cdn资源封禁方法、装置、电子设备及存储介质
CN115913720A (zh) * 2022-11-21 2023-04-04 中国农业银行股份有限公司 网络防护方法、装置、电子设备及介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9392075B1 (en) * 2015-07-23 2016-07-12 Haproxy Holdings, Inc. URLs with IP-generated codes for link security in content networks
JP2018182618A (ja) * 2017-04-18 2018-11-15 富士通株式会社 パケット処理装置、パケット処理方法、及び、パケット処理プログラム
CN111797352A (zh) * 2020-06-30 2020-10-20 广州市百果园信息技术有限公司 封禁帐号的方法、装置及封禁系统
CN113949581A (zh) * 2021-10-22 2022-01-18 中国建设银行股份有限公司 地址封禁方法、装置及系统、存储介质及电子设备
CN114070652A (zh) * 2022-01-12 2022-02-18 北京金山云网络技术有限公司 Cdn资源封禁方法、装置、电子设备及存储介质
CN115913720A (zh) * 2022-11-21 2023-04-04 中国农业银行股份有限公司 网络防护方法、装置、电子设备及介质

Also Published As

Publication number Publication date
CN117061590A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
US10515058B2 (en) Unified file and object data storage
US10853258B2 (en) Extending usages of cached data objects beyond cache expiration periods
EP2288997B1 (en) Distributed cache arrangement
US20160277515A1 (en) Server side data cache system
US10678697B1 (en) Asynchronous cache building and/or rebuilding
US10824559B2 (en) Counter tracker service
US8965862B2 (en) Directory oplock
US11010305B2 (en) Invalidating cached data objects in write-through operations
CN103699674A (zh) 网页保存、网页打开方法及装置和网页浏览系统
US20130346542A1 (en) Common web accessible data store for client side page processing
Kannan et al. Cloud4Home--Enhancing Data Services with@ Home Clouds
US11288237B2 (en) Distributed file system with thin arbiter node
WO2020215833A1 (zh) 离线缓存方法、装置、终端及可读存储介质
US9213673B2 (en) Networked applications with client-caching of executable modules
CN112433921A (zh) 用于动态埋点的方法及设备
US20160381136A1 (en) System, method, and computer program for providing rest services to fine-grained resources based on a resource-oriented network
US11055223B2 (en) Efficient cache warm up based on user requests
CN117061590B (zh) Cdn针对url封禁和定制封禁内容的方法及设备
US20150067089A1 (en) Metadata driven declarative client-side session management and differential server side data submission
US10530709B2 (en) Container contract for data dependencies
Ivanović et al. A scalable distributed architecture for client and server-side software agents
CN106940660B (zh) 缓存的实现的方法和装置
CN109101564A (zh) 一种页面资源同时加载的方法、装置和电子设备
US8990499B2 (en) Caching of a site model in a hierarchical modeling system for network sites
CN117194827B (zh) Cdn目录刷新的方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant