一种二级正向代理的实现方法和装置制造方法及图纸

技术编号:33205073 阅读:13 留言:0更新日期:2022-04-24 00:49
本发明专利技术公开了一种二级正向代理的实现方法和装置。包括:初始化代理服务,激活代理资源提取服务和代理资源管理服务;划分公共区域;封装代理需求处理服务;代理资源提取服务访问代理资源池,获取并存储代理资源至共享区域;代理资源管理服务检测公共区域中代理资源的有效性,对无效资源进行清除;代理需求处理服务获取来自客户端的代理需求,从公共区域提取空闲代理资源分配给代理需求。根据上述技术方案,提供的资源管理服务检测公共区域中代理资源的有效性,解决了客户端访问代理资源连接超时问题。提供的获取并存储代理资源至共享区域方法,解决了路由表的静态维护问题。解决了路由表的静态维护问题。解决了路由表的静态维护问题。

【技术实现步骤摘要】
一种二级正向代理的实现方法和装置


[0001]本专利技术涉及互联网通讯领域,具体而言,涉及一种二级正向代理的实现方法和装置。

技术介绍

[0002]在互联网访问的场景中,有时候需要隐藏真实IP,突破受访页面的IP访问限制,这种情况下需要采用正向代理服务器的机制,而正向代理服务器的IP访问限制时,则需要再引入一种技术手段来解决这个问题。
[0003]目前常用静态路由方式和squid代理方式两种技术方案来解决这个问题,然而静态路由方式的核心是添加和维护静态路由表。因为客户端程序需要访问的页面多种多样,这样就需要客户端添加大量的静态路由表,从而导致网络性能越来越差;squid的cache_peer指令可以指定父级代理IP地址,如果父级代理IP地址失效需要重新更换,cache_peer的配置也需要跟着更新并重启才能生效,这样就导致squid会频繁的更新重启加载,也会影响到squid代理软件的转发性能。
[0004]因此,需要一种更便利、可扩展和高效率的技术方案来解决二级正向代理的问题。

技术实现思路

[0005]为了解决正向代理静态路由表访问效率低下,维护繁琐问题,本专利技术提供了一种二级正向代理的实现方法和装置,建立公共区域,代理资源提取模块获取需要代理的资源放置到公共区域,代理资源管理模块从公共区域获取代理资源并检测是否有效,将无效代理资源从公共区域清除。当客户端需要代理需求时,由代理需求处理模块从公共区域获取有效代理资源分配给客户端使用。
[0006]第一方面,为实现上述目的,本申请提供了一种二级正向代理的实现方法,包括:
[0007]初始化代理服务,激活代理资源提取服务和代理资源管理服务;划分公共区域;封装代理需求处理服务;
[0008]优选的,代理资源提取服务访问代理资源池,获取并存储代理资源至所述共享区域;代理资源管理服务检测公共区域中代理资源的有效性,对无效资源进行清除。
[0009]优选的,代理需求处理服务获取来自客户端的代理需求,从公共区域提取空闲代理资源分配给代理需求。
[0010]优选的,代理资源提取服务包括第一循环定时器,设定访问频率f1,用于循环访问所述代理资源池。
[0011]优选的,代理资源管理服务包括第二循环定时器,设定轮循频率f2,用于循环检测公共区域中代理资源的有效性;
[0012]其中,代理资源管理服务根据频率f2循环使用代理资源,新建正向代理请求,获取请求的响应结果。
[0013]优选的,代理资源管理服务检测公共区域中代理资源的有效性的方法包括,判断
代理资源建立正向代理请求的响应时间,如果响应时间超时,对代理资源进行无效处理;无效处理包括:在公共区域标识代理资源无效,将代理资源从公共区域清除。
[0014]另一方面,本专利技术提供了一种二级正向代理的实现装置,包括:
[0015]代理资源提取模块、和代理资源管理模块、公共区域和代理需求处理模块;
[0016]优选的,代理资源提取模块用于访问代理资源池,获取并存储代理资源至共享区域;
[0017]其中,代理资源提取模块包括第一循环定时器,用于设定访问频率f1,并控制对代理资源池的循环访问。
[0018]另一方面,代理资源提取模块用于访问代理资源池,获取并存储代理资源至共享区域之前,判断共享区域是否存在相同代理IP。存在相同代理IP放弃存储至共享区域。
[0019]优选的,代理资源管理模块用于检测公共区域中代理资源的有效性,对无效资源进行清除;
[0020]其中,代理资源管理模块包括第二循环定时器,用于设定轮循频率f2,并控制对公共区域中代理资源的有效性进行循环检测。
[0021]优选的,代理资源管理模块判断每次正向代理请求的响应时间,如果响应时间超时,对代理资源进行无效处理;无效处理包括:在公共区域标识代理资源无效,将代理资源从公共区域清除。
[0022]优选的,代理需求处理模块用于获取来自客户端的代理需求,从公共区域提取空闲代理资源分配给客户端代理需求;
[0023]其中,代理需求处理模块获取来自客户端的代理需求时,先建立随机算法,随机从公共区域中获取代理IP,并将有效代理IP分配给客户端。
[0024]根据本专利技术提供的资源管理服务检测公共区域中代理资源的有效性,解决了客户端访问代理资源连接超时问题。提供的获取并存储代理资源至共享区域方法,解决了路由表的静态维护问题。
附图说明
[0025]图1是根据本专利技术实施例提供的一种二级正向代理的实现方法的流程图;
[0026]图2是根据本专利技术实施例提供的一种二级正向代理的实现方法的示意图;
[0027]图3是根据本专利技术实施例提供的一种二级正向代理的实现装置的结构图。
具体实施方式
[0028]下面结合说明书附图对本专利技术的具体实现方式做一详细描述。
[0029]本专利技术提供的二级正向代理的实现方法,基于OpenResty实现,OpenResty是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。本申请的方法在OpenResty的基础上实现,维护代价小、灵活、具有可扩展性。
[0030]图1是本专利技术实施例中一种二级正向代理的实现方法的流程图,在图2中提供了二级正向代理实现方法的示意图,接下来,结合图1和图2,对本申请的具体实施方式进行说明:
[0031]在本专利技术中,启动一个正向代理端口,获取客户端程序需要访问的互联网访问的地址,客户端程序将通过这个正向代理端口访问互联网,其具体实现方法见图1:
[0032]步骤S110:初始化代理服务,激活代理资源提取服务、代理资源管理服务,封装代理需求处理服务,并划分公共区域。
[0033]具体实现时,在OpenResty的init_worker_by_lua阶段同时启动2个子线程ngx.worker.0和ngx.worker.1,在preread_by_lua阶段封装地址获取算法。
[0034]代理资源提取服务,即ngx.worker.0子线程,ngx.worker.0负责从第三方代理池获取代理ip地址;
[0035]代理资源管理服务,即ngx.worker.1子线程,负责检测获取到的代理ip的有效性;
[0036]公共区域为OpenResty新建的一个共享内存lua_shared_dict,命名为proxy_ups,用于给ngx.worker.0和ngx.worker.1读写信息,如图2所示,ngx.worker.0对proxy_ups进行写入的操作,ngx.worker.1对proxy_ups进行读取和写入。
[0037]步骤S120:代理资源提取服务访问代理资源池,获取并存储代理资源至共享区域;代理资源管理服务检测公共区域中代理资源的有效性,对无效资源进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种二级正向代理的实现方法,其特征在于,包括以下步骤:初始化代理服务,激活代理资源提取服务和代理资源管理服务;划分公共区域;封装代理需求处理服务;所述代理资源提取服务访问代理资源池,获取并存储代理资源至所述共享区域;所述代理资源管理服务检测所述公共区域中代理资源的有效性,对无效资源进行清除;所述代理需求处理服务获取来自客户端的代理需求,从所述公共区域提取空闲代理资源分配给所述代理需求。2.根据权利要求1所述的二级正向代理的实现方法,其特征在于,所述代理资源提取服务包括第一循环定时器,设定访问频率f1,用于循环访问所述代理资源池。3.根据权利要求1所述的二级正向代理的实现方法,其特征在于,所述代理资源管理服务包括第二循环定时器,设定轮循频率f2,用于循环检测公共区域中代理资源的有效性;其中,所述代理资源管理服务根据所述频率f2循环使用代理资源,新建正向代理请求,获取请求的响应结果。4.根据权利要求3所述的二级正向代理的实现方法,其特征在于,所述检测公共区域中代理资源的有效性的方法包括,判断所述代理资源建立正向代理请求的响应时间,如果响应时间超时,对所述代理资源进行无效处理;所述无效处理包括:在所述...

【专利技术属性】
技术研发人员:王志广田丹李晓鹏梁鸿亮张俊楠
申请(专利权)人:广州启生信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1