本发明涉及网络通信,具体涉及一种基于agent的分布式https代理系统和方法。
背景技术:
1、随着互联网技术的持续演进,https协议作为保障网络通信安全的重要基石,被广泛应用于各类网络服务和应用中。https是一种安全的网络传输协议,它是对http(hypertext transfer protocol,超文本传输协议)的扩展和升级。在分布式系统架构下,https代理成为了连接客户端与服务器端不可或缺的桥梁,它不仅能够实现数据加密传输,保护用户数据隐私,还具备负载均衡、访问控制、缓存优化等多种功能,对于提升系统整体性能和用户体验至关重要。然而,随着分布式系统规模的日益扩大和复杂度的增加,传统的https代理方法面临着诸多挑战。这些挑战包括如何高效地管理大量分散的agent(代理程序,用于处理https协议下的网络通信)、如何动态地调整连接关系以适应系统需求的变化,以及如何在确保服务连续性的同时提高系统的容错能力等。
2、尽管现有的https代理技术在一定程度上满足了分布式系统的基本需求,但其存在的缺陷也日益凸显。首先,传统方法往往缺乏一个统一、集中的配置管理机制,导致agent和https源服务模块的配置信息难以同步和更新,增加了管理复杂度和出错率。其次,连接关系的僵化限制了系统的灵活性和可扩展性,使得系统在面对节点数量变化或网络拓扑结构调整时难以及时响应。最后,容错机制的不足使得系统在主https源服务模块出现故障时无法迅速切换到备份服务,导致服务中断时间延长,影响了用户体验和系统的整体可靠性。这些缺陷不仅制约了分布式https代理技术的发展,也限制了其在更广泛领域的应用。
3、公开号为cn107613036b的中国发明专利中,公开了实现https透明代理的方法和系统,它提供一种实现网络通信快速、简单的实现https透明代理的方法和系统;所述方法包括:s1、将要做https代理的域名解析到https代理设备的ip地址;s2、网络用户端获取所述https代理设备的ip地址,然后向所述https代理设备发起握手请求,所述https代理设备直接跟所述网络用户端进行握手校验;s3、获取所述网络用户端请求的需要进行https代理的域名,并向所述域名对应的源站进行回源请求;s4、通过所述https代理设备建立所述网络用户端和所述域名对应的源站之间的数据传输。
4、现有的https代理技术在分布式系统中的主要缺陷体现在:一是缺乏统一的配置管理,现有技术往往缺乏一个集中式的配置库来统一管理agent和https源服务模块的配置信息,导致配置信息的更新和同步变得复杂且容易出错;二是连接关系僵化,传统代理方法中的连接关系通常是固定的,无法根据系统需求进行动态调整,限制了系统的灵活性和可扩展性;三是容错机制不完善,当主https源服务模块失效时,现有技术往往缺乏有效的备份和恢复机制,导致服务中断时间过长,影响用户体验。
技术实现思路
1、本发明的目的是提供一种基于agent的分布式https代理系统和方法,以解决现有技术中的上述不足之处。
2、为了实现上述目的,本发明提供如下技术方案:一种基于agent的分布式https代理系统,包括配置库、若干https客户端、https代理服务器、若干https agent和若干局域网内https源服务模块;
3、所述若干https客户端、若干https agent和若干局域网内https源服务模块一一对应;
4、所述配置库用于https代理服务器的匹配验证,其存储有配置信息并将配置信息传输至https代理服务器,且其设置有随机分配算法模型,能够对一个https客户端匹配两个局域网内部https源服务地址;
5、https客户端用于向https代理服务器发起https请求,并接收来自https代理服务器的应答数据;
6、https代理服务器接收来自https客户端的https请求并从配置库中读取配置信息,https代理服务器将https请求转发到对应的https agent进行处理,且https代理服务器具有检测机制,能够检测https agent回传的应答数据准确性;
7、https agent建立与https代理服务器之间的连接,将来自于https代理服务器的https请求定向转发到对应局域网内https源服务模块中的局域网内部https源服务地址,并接收局域网内https源服务模块的应答数据再将其转发至https代理服务器;
8、局域网内https源服务模块接收来自https agent的https请求并应答,然后将应答数据传输至https agent。
9、进一步地,所述配置信息包括允许接入https代理服务器的https客户端账号、密码以及与该账号对应的两个局域网内部https源服务地址;
10、所述https客户端向https代理服务器发起https请求时,在http请求头proxy-authorization中配置相应的账号、密码作为授权信息。
11、进一步地,所述随机分配算法模型具体包括如下步骤:
12、对于随机两两分组,设有一个包含2m个元素的集合s,将这些元素随机分成m对,这个过程可以看作从s中无放回地随机选择元素成对;
13、初始化一个空集合p来存储对;
14、对于i=1,2,...,m:
15、从中随机选择一个元素ai,随着选择的进行,s会减小;
16、从剩余的s-{ai}中随机选择一个与ai不同的元素bi;
17、将对(ai,bi)添加到p中,并从s中移除ai和bi;
18、输出p作为结果。
19、进一步地,所述https代理服务器包括https请求接收模块、客户端授权管理模块、agent管理模块、https请求转发模块、应答信息检测模块和https应答回传模块;
20、所述https请求接收模块接收https客户端发送的https请求,并将https请求缓存并传输至https请求转发模块;
21、客户端授权管理模块接收https agent的连接登录信息,并读取配置库中的配置信息对登录用户密码信息的合法性进行校验;
22、agent管理模块将所有登录的agent信息缓存,采用key-value的形式进行存储,其中key为agent用户名,value为agent与https代理服务器的连接;
23、https请求转发模块接收来自https请求接收模块的https请求,并从https请求头proxy-authorization中获取用户账号密码,结合来自客户端授权管理模块的配置信息校验,通过agent管理模块查找到该账号对应的agent连接,然后将https请求转发至对应的https agent;
24、应答信息检测模块接收来自https agent的应答数据并检测其准确性,将判断正确的应答数据传输至https应答回传模块,将判断错误的指令传输至https请求转发模块;
25、https应答回传模块接收来自应答信息检测模块的正确应答数据,并通过agent管理模块查找对应的https客户端,将应答数据传输至该https客户端;
26、所述配置库的输出端与客户端授权管理模块的输入端相连接;
27、https客户端的输出端与https请求接收模块的输入端相连接;
28、https请求接收模块的输出端与https请求转发模块的输入端相连接;
29、客户端授权管理模块的输出端分别与agent管理模块和https请求转发模块的输入端相连接;
30、agent管理模块的输出端分别与https请求转发模块和https应答回传模块的输入端相连接;
31、应答信息检测模块的输出端分别与https请求转发模块和https应答回传模块的输入端相连接;
32、https应答回传模块的输出端与https客户端的输入端相连接。
33、进一步地,所述https agent包括注册管理模块、https请求传递模块、https应答接收模块和https应答转发模块;
34、所述注册管理模块向客户端授权管理模块发送登录信息以验证合法性,并发起tcp连接;
35、https请求传递模块接收来自https请求转发模块的https请求信息,并将其发送至局域网内https源服务模块;
36、https应答接收模块接收来自局域网内https源服务模块的应答数据,并将其传输至https应答转发模块;
37、https应答转发模块接收来自https应答接收模块的应答数据,并将其传输至应答信息检测模块;
38、所述注册管理模块的输出端与客户端授权管理模块的输入端相连接;
39、https请求传递模块的输入端与https请求转发模块的输出端相连接;
40、https应答接收模块的输出端与https应答转发模块的输入端相连接;
41、https应答转发模块的输出端与应答信息检测模块的输入端相连接。
42、进一步地,所述局域网内https源服务模块包括定向单元、主https源服务地址和备份https源服务地址;
43、所述定向单元接收来自https请求传递模块的https请求,并判断所要访问的局域网内部https源服务地址;
44、主https源服务地址接收来自定向单元的https请求作出应答;
45、备份https源服务地址接收来自定向单元的https请求并作出应答;
46、所述定向单元的输入端与https请求传递模块的输出端相连接,定向单元的输出端分别与主https源服务地址和备份https源服务地址的输入端相连接;
47、主https源服务地址和备份https源服务地址的输出端分别与https应答接收模块的输入端相连接。
48、一种基于agent的分布式https代理方法,其适用于一种基于agent的分布式https代理系统,具体包括以下步骤:
49、s1、https代理服务器通过配置库的配置信息支持,确定与https agent的连接关系;
50、s2、https客户端建立与https代理服务器的连接,发送https请求,https代理服务器进行匹配和识别,将https请求通过对应的https agent转发至局域网内https源服务模块,局域网内https源服务模块应答后将应答数据通过https agent回传至https代理服务器,https代理服务器判断正确后将应答数据传输至https客户端;
51、s3、https代理服务器判断应答数据错误后,在配置库内部的随机分配算法模型支持下,将https请求经过https agent发送至备份的局域网内https源服务模块进行应答,并将应答数据传回。
52、进一步地,所述s1包括:
53、s11、所述https代理服务器从配置库读取配置信息;
54、s12、https agent根据本地配置的账号、密码以及https源服务地址,向https代理服务器发起tcp连接,并发送注册信息,请求建立tcp长连接;
55、s13、https代理服务器对https agent发送的注册信息进行授权判断,如果合法则建立tcp长连接,否则关闭连接。
56、进一步地,所述s2包括:
57、s21、所述https客户端与https代理服务器建立连接,并发起https请求,在http请求头proxy-authorization中配置相应的授权信息,授权信息使用“用户名:密码”的格式组成的字符串进行base64编码后发送;
58、s22、https代理服务器接收来自于https客户端的https请求后,首先获取proxy-authorization附带的授权信息,并与配置库中配置信息的账号、密码进行匹配、验证,验证通过后,获取该账号所对应的https agent的连接信息,并将https请求转发至对应的httpsagent;
59、s23、https agent接收到https代理服务器转发的https请求后并将其转发至对应的局域网内https源服务模块进行应答;
60、s24、局域网内https源服务模块对https请求应答并将应答数据通过https agent传输至https代理服务器,https代理服务器对应答数据进行判断,若应答数据正确则将其回传至https客户端。
61、进一步地,所述s3包括:
62、s31、若https代理服务器判断应答数据错误,则读取配置库内部的该用户账户对应的备份的局域网内https源服务模块;
63、s32、备份的局域网内https源服务模块内部有两个局域网内部https源服务地址,其中一个用作相对应用户账号的主https源服务地址,另外一个用作备份随机账号的备份https源服务地址,启用备份https源服务地址进行应答并将应答数据通过https agent和https代理服务器判断后传输至https客户端。
64、与现有技术相比,本发明提供的一种基于agent的分布式https代理系统和方法:
65、一、灵活的配置管理机制,通过引入配置库,实现了对https agent和局域网内https源服务模块配置信息的集中管理和动态更新,大大简化了配置信息的维护工作;
66、二、动态的连接关系管理,https代理服务器能够根据配置库中的信息动态地确定与https agent的连接关系,提高了系统的灵活性和可扩展性;
67、三、完善的容错机制,当对应的局域网内https源服务模块出现故障时,https代理服务器能够自动读取配置库中的备份信息,将https请求转发至备份的局域网内https源服务模块,确保服务的连续性和稳定性;
68、四、https代理服务器处于公共网络环境下,由处于局域网内的https agent主动连接https代理服务器,https agent不需要有固定的ip地址,因此不同于现有技术中需要将中转网络服务器的地址直接暴露给https代理服务器,https agent也不会暴露自身ip地址;
69、五、https代理服务器不需要设置在客户机上,可以接收来自多个客户机的请求和多个https agent的连接,因此可以同时服务多个https客户端和多个https agent,https代理服务器与https客户端之间、https代理服务器与https agent之间都进行了授权检查,保证访问的合法性;
70、六、https客户端的授权信息通过proxy-authorization进行设置,并且根据授权的用户信息,将https请求转发到唯一对应的https agent上,因而https客户端可以不止一个,不同https客户端可以设置相同的授权信息,从而通过代理系统访问同一个源目标服务;
71、七、https agent自身可以处于局域网内,只要能够对外连接到https代理服务器即可,https agent通过配置https代理服务器ip地址和端口以及登录https代理服务器所需的授权信息,当https agent启动时,能够与https代理服务器建立一条tcp长连接进行通信,可以减少频繁建链拆链的时间损耗。
1.一种基于agent的分布式https代理系统,其特征在于,包括配置库(1)、若干https客户端(2)、https代理服务器(3)、若干https agent(4)和若干局域网内https源服务模块(5);
2.根据权利要求1所述的一种基于agent的分布式https代理系统,其特征在于,所述配置信息包括允许接入https代理服务器(3)的https客户端(2)账号、密码以及与该账号对应的两个局域网内部https源服务地址;
3.根据权利要求2所述的一种基于agent的分布式https代理系统,其特征在于,所述随机分配算法模型具体包括如下步骤:
4.根据权利要求3所述的一种基于agent的分布式https代理系统,其特征在于,所述https代理服务器(3)包括https请求接收模块(31)、客户端授权管理模块(32)、agent管理模块(33)、https请求转发模块(34)、应答信息检测模块(35)和https应答回传模块(36);
5.根据权利要求4所述的一种基于agent的分布式https代理系统,其特征在于,所述https agent(4)包括注册管理模块(41)、https请求传递模块(42)、https应答接收模块(43)和https应答转发模块(44);
6.根据权利要求5所述的一种基于agent的分布式https代理系统,其特征在于,所述局域网内https源服务模块(5)包括定向单元(51)、主https源服务地址(52)和备份https源服务地址(53);
7.一种基于agent的分布式https代理方法,其特征在于,其适用于权利要求1-6任一项所述的一种基于agent的分布式https代理系统,具体包括以下步骤:
8.根据权利要求7所述的一种基于agent的分布式https代理方法,其特征在于,所述s1包括:
9.根据权利要求8所述的一种基于agent的分布式https代理方法,其特征在于,所述s2包括:
10.根据权利要求9所述的一种基于agent的分布式https代理方法,其特征在于,所述s3包括: