CN110138872B - 一种用于网络代理的计算机可读介质 - Google Patents
一种用于网络代理的计算机可读介质 Download PDFInfo
- Publication number
- CN110138872B CN110138872B CN201910425062.XA CN201910425062A CN110138872B CN 110138872 B CN110138872 B CN 110138872B CN 201910425062 A CN201910425062 A CN 201910425062A CN 110138872 B CN110138872 B CN 110138872B
- Authority
- CN
- China
- Prior art keywords
- server
- access request
- proxy
- cluster
- servers
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种用于网络代理的计算机可读介质,其上存储有程序,该程序被执行时实现用于网络的代理方法,所述方法包括:对访问请求执行域名解析,将所述访问请求解析至多个代理服务器中的第一代理服务器,所述多个代理服务器部署于不同的地域;以及由所述第一代理服务器基于自身的配置信息将所述访问请求代理至首选地域内的服务器集群。
Description
本申请是申请日为2016年6月30日,申请号为201610510314.5,发明创造名称为“网络代理方法和代理系统”的分案申请。
技术领域
本发明涉及互联网技术,尤其涉及一种用于网络代理的计算机可读介质。
背景技术
网络代理功能是由代理服务器执行的一项常见互联网功能,即代理网络用户去取得网络信息。形象的说,代理服务器是网络信息的中转站。在一般情况下,我们使用客户端,例如网络浏览器直接去连接其他Internet站点取得网络信息时,须送出访问请求来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求。访问请求会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就像一个大的 Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。
发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
根据本发明的一方面,提供了一种用于网络代理的计算机可读介质,其上存储有介质,该程序被执行时实现用于网络的代理方法,所述方法包括:
对访问请求执行域名解析,将所述访问请求解析至多个代理服务器中的第一代理服务器,所述多个代理服务器部署于不同的地域;以及
由所述第一代理服务器基于自身的配置信息将所述访问请求代理至首选地域内的服务器集群。
在一实例中,所述执行域名解析包括:
基于所述访问请求的发起位置将所述访问请求解析至所述第一代理服务器,所述访问请求的发起位置落在所述第一代理服务器所处的第一地域内。
在一实例中,基于所述配置信息,所述首选地域内的服务器集群为所述第一地域内的服务器集群。
在一实例中,所述将所述访问请求代理至首选地域内的服务器集群进一步包括:
基于负载均衡策略将所述访问请求代理至所述首选地域内的服务器集群中的一服务器。
在一实例中,所述将所述访问请求代理至首选地域内的服务器集群进一步包括:
若所代理到的所述服务器响应异常,则再次基于负载均衡策略将所述访问请求代理至所述首选地域内的服务器集群中的其他服务器直至所述访问请求得到正常响应。
在一实例中,还包括:
在将所述访问请求代理至另一地域内的服务器集群并且所述访问请求得到正常响应之后,修改所述配置信息以将所述另一地域配置为首选地域。
在一实例中,所述负载均衡策略包括以下至少一者:轮循均衡、权重轮循均衡、随机均衡、响应速度均衡、最少连接数均衡、处理能力均衡、DNS 响应均衡。
在一实例中,所述访问请求包括头部部分和主体部分,所述代理方法还包括:
由所述第一代理服务器解析所述访问请求的主体部分以获取用户ID,以用于所述负载均衡策略的标识。
在一实例中,所述第一代理服务器基于本地存储的关于所述访问请求的请求格式对所述访问请求的主体部分执行解析。
在一实例中,所述计算机可读介质包括RAM、ROM、EEPROM、CD-ROM、同轴电缆、光纤电缆、双绞线、数字订户线、压缩碟、激光碟、光碟、数字多用碟、软盘和蓝光碟。
在本发明中,通过加入地域的概念,可以单独对某一个地域代理负载,也可以配置多个地域,对多个地域进行负载代理,多个地域进行切换,提供了代理的灵活性。
此外,相比nginx只能从请求头信息中获取负载策略相关内容,本发明通过解析请求体信息获取负载策略内容,从而加强了负载策略,解决了一般负载策略执行方式单一的问题,从而支持代理负载均衡多样性,例如可以支持微信和webservice等多种形式。
附图说明
在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
图1是示出了根据本发明的一方面的代理系统的框图;
图2是示出了根据本发明的一方面的代理方法的流程图;
图3是示出了根据本发明的另一方面的代理系统的框图;以及
图4是示出了根据本发明的另一方面的代理方法的流程图。
具体实施方式
以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
图1是示出了根据本发明的一方面的代理系统100的框图。如图1所示,代理系统100可包括域名解析服务器101、代理服务器121、122、以及服务器集群131、132。
用户经由客户端发起一访问请求。这里的客户端可以是网页浏览器、APP 软件如微信等等。经由客户端发起的访问请求首先经由域名解析服务器101 进行域名解析。域名解析服务器101负责将访问请求解析至代理服务器121、 122中的一者。
根据本发明的一方面,借助“地域”来执行代理功能。代理服务器121、 122部署于不同地域,服务器集群131、132也部署于不同的地域。在图1所示的实例中,代理服务器121、和服务器集群131部署于相同的地域1中;代理服务器122和服务器集群132部署于相同的地域2。
在图1所示的实例中仅仅示出了两个地域,地域1、地域2,也仅仅示出了这两个地域的代理服务器和服务器集群,然而,本领域技术人员可以理解,可存在两个以上的地域,并且每个地域中部署相应的代理服务器和服务器集群,例如存部署于地域n中的代理服务器12n和服务器集群13n(其中n>2) (未示出)。
在一实施例中,域名解析服务器101可基于访问请求的发起地址来决定将该访问请求解析至哪一个代理服务器。例如,域名解析服务器101可将访问请求解析至第一代理服务器,其中该访问请求的发起地址落在该第一代理服务器所处的地域。
作为示例,该第一代理服务器可以为代理服务器121,即域名解析服务器101将访问请求解析至地域1的代理服务器121。
代理服务器121例如通过监听80端口接收到该访问请求。代理服务器 121可基于自身的配置信息确定将访问请求代理首选地域内的服务器集群。配置信息中可以存储有首选地域,所谓首选地域是指代理服务器121将访问请求优先代理至该首选地域的服务器集群。配置信息中还可以存储有按优先级排序的其他地域的排序列表。
作为示例,正常情况下一个代理服务器的配置信息中的优选地域为该代理服务器自身所处的地域。例如对于代理服务器121而言,其首选地域为地域1,对于代理服务器122而言,首选地域为地域2。当然,配置信息中的首选地域是可以更改的,例如在首选地域的服务器集群出现宕机无法正常响应时,可以更改首选地域,这在下文详细描述。
在图1所示的实例中,代理服务器121可基于自身配置信息将访问请求代理至地域1内的服务器集群131。
服务器集群131中含有多个服务器,例如服务器A、B、C、D,这里仅示出了4个服务器,然而可以理解可以存在更多个服务器。
代理服务器121可基于负载均衡策略将访问请求代理至首选地域内的服务器集群即地域1内的服务器集群131中的一服务器。
常用的负载均衡策略包括以下几种类型:
轮循均衡(Round Robin):每一次来自网络的请求轮流分配给内部中的服务器,从1至N然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。
权重轮循均衡(Weighted Round Robin):根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。例如:服务器A的权值被设计成1,B的权值是3,C的权值是6,则服务器A、B、C 将分别接受到10%、30%、60%的服务请求。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。
随机均衡(Random):把来自网络的请求随机分配给内部中的多个服务器。
权重随机均衡(Weighted Random):此种均衡算法类似于权重轮循算法,不过在处理请求分担时是个随机选择的过程。
响应速度均衡(Response Time):负载均衡设备对内部各服务器发出一个探测请求(例如Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好的反映服务器的当前运行状态,但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。
最少连接数均衡(Least Connection):客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同,并没有达到真正的负载均衡。最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时处理的请求服务,如FTP。
处理能力均衡:此种均衡算法将把服务请求分配给内部中处理负荷(根据服务器CPU型号、CPU数量、内存大小及当前连接数等换算而成)最轻的服务器,由于考虑到了内部服务器的处理能力及当前网络运行状况,所以此种均衡算法相对来说更加精确,尤其适合运用到第七层(应用层)负载均衡的情况下。
DNS响应均衡(Flash DNS):在Internet上,无论是HTTP、FTP或是其它的服务请求,客户端一般都是通过域名解析来找到服务器确切的IP地址的。在此均衡算法下,分处在不同地理位置的负载均衡设备收到同一个客户端的域名解析请求,并在同一时间内把此域名解析成各自相对应服务器的IP 地址(即与此负载均衡设备在同一位地理位置的服务器的IP地址)并返回给客户端,则客户端将以最先收到的域名解析IP地址来继续请求服务,而忽略其它的IP地址响应。在种均衡策略适合应用在全局负载均衡的情况下,对本地负载均衡是没有意义的。
例如代理服务器121可基于负载均衡策略将访问请求代理至服务器集群 131中的服务器A,若服务器A响应异常,则可再次基于负载均衡策略将访问请求代理至该服务器集群131中的其他服务器,若响应还是异常,则再次代理至该服务器集群131中的下一服务器,重复此操作直至访问请求得到正常响应。
在极端情况下,若首选地域内的服务器集群中的所有服务器都不能正常响应,则代理服务器121可基于配置信息将访问请求代理至另一地域内的服务器集群,例如配置信息中优先级仅次于首选地域的下一地域内的服务器集群。作为示例,例如可代理服务器121可将访问请求代理至地域2内的服务器集群132。
若服务器集群132能够提供正常响应,则代理服务器121可修改配置信息以将首选地域改为地域2。较优地,当地域1内的服务器集群131恢复正常,代理服务器121的首选地域可以再改回地域1。
访问请求一般包括头部部分和主体部分。如先前所述的,访问请求有可能是通过微信平台等网络平台发出的,此时,访问请求的头部部分的信息是一样的,不能作为一些普通负载策略的标示。
在本发明,代理服务器可以包括数据库和解析模块(图中未示出)。数据库中可以预存有多种请求类型的请求格式。解析模块可以通过查找数据库以根据该用户请求的请求格式对访问请求的主体部分进行解析,以获取用户ID,由此可以作为负载均衡策略的标识。
图2是示出了根据本发明的一方面的代理方法200的流程图。如图2所示,代理方法200可包括以下步骤:
在步骤201:对访问请求执行域名解析,将访问请求解析至多个代理服务器中的第一代理服务器,该多个代理服务器部署于不同的地域。
该解析可以是基于访问请求的发起位置来进行的,例如该访问请求的发起位置落在第一代理服务器所处的第一地域内。
在步骤202:由第一代理服务器基于自身的配置信息将访问请求代理至首选地域内的服务器集群。
配置信息中可以存储有首选地域,所谓首选地域是指代理服务器将访问请求优先代理至该首选地域的服务器集群。配置信息中还可以存储有按优先级排序的其他地域的排序列表。作为示例,正常情况下一个代理服务器的配置信息中的优选地域为该代理服务器自身所处的地域。
进一步地,第一代理服务器可基于负载均衡策略将访问请求代理至首选地域内的服务器集群中的一服务器。如前所述,常有的负载均衡策略可包括轮循均衡、权重轮循均衡、随机均衡、响应速度均衡、最少连接数均衡、处理能力均衡、DNS响应均衡等等。
若所代理到的服务器响应异常,则再次基于负载均衡策略将访问请求代理至首选地域内的服务器集群中的其他服务器直至访问请求得到正常响应。
若该首选地域内的服务器集群中的所有服务器均响应异常,则由第一代理服务器基于自身的配置信息将访问请求代理至另一地域内的服务器集群,例如配置信息中按照优先级排序位于首选地域的下一个地域内的服务器集群。
在将访问请求代理至另一地域内的服务器集群并且访问请求得到正常响应之后,修改该配置信息以将该另一地域配置为首选地域。优选地,可以在该第一地域内的服务器集群可以正常响应时,将第一地域改回为首选地域。
在一实例中,可由第一代理服务器解析访问请求的主体部分以获取用户 ID,以用于负载均衡策略的标识。例如,第一代理服务器可基于本地存储的关于访问请求的请求格式对访问请求的主体部分执行解析。
图3是示出了根据本发明的另一方面的代理系统300的框图。
如图3所示,代理系统300可包括域名解析服务器301、代理服务器321、 322、以及服务器集群331、332。图3中示出的两个代理服务器321、322以及两个服务器集群331、332仅仅是示例,实践中,可以存在一个代理服务器和一个服务器集群,也可以存在大于两个的代理服务器和大于两个的服务器集群。
根据本发明的一方面,每个服务器集群可包括两个服务器组,其中一个服务器组为提供访问服务的正式发布服务器组,另一组为用于服务器升级的预发布服务器组。这两组服务器组是完全一样的,区别仅在于两者的角色不同,即,每个服务器组的角色在“正式发布服务器组”和“预发布服务器组”之间进行切换。当一个服务器组为“正式发布服务器组”时,另一组则为“预发布服务器组”,而当原先为“正式发布服务器组”角色的服务器组切换为“预发布服务器组”时,原先为“预发布服务器组”角色的服务器组同时切换为“正式发布服务器组”。
以图3中的实例为例,服务器集群331包括两个服务器组3311、3312。服务器组3311和服务器组3312原本为两个互为映射的服务器组,即两者完全相同。然而将服务器组3311用于向用户提供访问响应,另一服务器组3312 不用于向用户提供访问响应,而是用于服务器升级。此时,服务器组3311即可称为正式发布服务器组,此时服务器组3312可称为预发布服务器组。
在一个例子中,在服务器组3312为承担预发布服务器组角色的时间内,如果需要对服务器作任何升级,则不对承担正式发布服务器组角色的服务器组3311做任何操作,而是仅对服务器组3312进行升级,这里的服务器升级可以是服务器内容的更新,或者服务器配置的修改。
当承担预发布服务器组角色的服务器组3312升级完毕后,服务器组3312 可从预发布服务器组的角色切换为正式发布服务器组,相应地,服务器组3311 则从正式发布服务器组的角色切换为预发布服务器组,两者实现角色互换。
在另一个例子中,在服务器组3312为承担预发布服务器组角色的时间内,如果需要对服务器作任何升级,可以先将服务器组3312切换为正式服务器组,同时将服务器组3311切换为预发布服务器组;然后,对服务器组3311 进行升级。
当对服务器组3311进行升级完毕后,服务器组3312重新切换为预发布服务器组,升级后的服务器组3311切换为正式服务器组。
需要说明的是,上述切换为服务器组之间的被动切换。但本发明中还可以在正式服务器组全部异常的情况下,将预发布服务器组切换为正式服务器组,而正式服务器组切换为预发布服务器组。后续还可以定时检测异常的预发布服务器组是否恢复正常,待预发布服务器组恢复正常之后,恢复正常的预发布服务器切换为正式服务器组,而正式服务器组重新切换回预发布服务器组。
用户经由客户端发起一访问请求。这里的客户端可以是网页浏览器、APP 软件如微信等等。经由客户端发起的访问请求首先经由域名解析服务器301 进行域名解析。域名解析服务器301负责将访问请求解析至代理服务器321、 322中的一者,例如代理服务器321。代理服务器321可基于自身的配置信息将访问请求代理至一个服务器集群,例如服务器集群331的正式发布服务器组。
由上可知,代理服务器总是将访问请求代理至服务器集群中的正式发布服务器组。由于正式发布服务器组总是经过升级且能提供正常访问响应的服务器组,因此,访问请求总能得到正常响应。此外,尽管正式发布服务器组在服务器集群的两个服务器组之间切换,但是该切换对于用户而言是不可见的,因此,服务器的升级可以无缝切换,不需要重新启动服务器。
在存在多个代理服务器和多个服务器集群的情况下,可以借助“地域”来执行代理功能。例如,代理服务器321、322部署于不同地域,服务器集群 331、332也部署于不同的地域。在图3所示的实例中,代理服务器321、和服务器集群331部署于相同的地域1中;代理服务器322和服务器集群332 部署于相同的地域2。
在一实施例中,域名解析服务器101可基于访问请求的发起地址来决定将该访问请求解析至哪一个代理服务器。例如,域名解析服务器101可将访问请求解析至第一代理服务器,其中该访问请求的发起地址落在该第一代理服务器所处的地域。
代理服务器321例如通过监听80端口接收到该访问请求。在一实例中,代理服务器321可基于自身的配置信息确定将访问请求代理首选地域内的服务器集群。配置信息中可以存储有首选地域,所谓首选地域是指代理服务器 321将访问请求优先代理至该首选地域的服务器集群。配置信息中还可以存储有按优先级排序的其他地域的排序列表。
作为示例,正常情况下一个代理服务器的配置信息中的优选地域为该代理服务器自身所处的地域。例如对于代理服务器321而言,其首选地域为地域1,对于代理服务器322而言,首选地域为地域2。
在图3所示的实例中,代理服务器321可基于自身配置信息将访问请求代理至地域1内的服务器集群331。
代理服务器321可基于负载均衡策略将访问请求代理至首选地域内的服务器集群即地域1内的服务器集群331中的正式发布服务器组例如服务器组 3311中的服务器。
常用的负载均衡策略可包括轮循均衡、权重轮循均衡、随机均衡、响应速度均衡、最少连接数均衡、处理能力均衡、DNS响应均衡等等。
例如代理服务器321可基于负载均衡策略将访问请求代理至服务器集群 331中正式发布服务器组3311中的服务器A,若服务器A响应异常,则可再次基于负载均衡策略将访问请求代理至该服务器组3311中的其他服务器,若响应还是异常,则再次代理至该服务器组3311中的下一服务器,重复此操作直至访问请求得到正常响应。
在极端情况下,若服务器集群331的正式发布服务器组3311中的所有服务器都不能正常响应,则代理服务器321可基于配置信息将访问请求代理至下一地域内,例如配置信息中优先级仅次于首选地域的下一地域内的服务器集群中的正式发布服务器组。作为示例,例如代理服务器321可将访问请求代理至地域2内的服务器集群332内的正式发布服务器组。若此时服务器集群332中的正式发布服务器组为服务器组3321,则将访问请求代理至服务器组3321,否则代理至服务器组3322。
在更极端的情况下,若所有地域内的服务器集群的正式发布服务器组均响应异常,则代理服务器321可以将访问请求重新代理至首选地域内的服务器集群的预发布服务器组,例如地域1的服务器集群331中的预发布服务器组3312。
若该地域1的服务器集群331中的预发布服务器组3312也无法正常响应,则可将访问请求代理至下一地域内,例如配置信息中优先级仅次于首选地域的下一地域内的服务器集群中的预发布服务器组,例如地域2的服务器集群332中的预发布服务器组3322直至访问请求得到正常响应为止。
在所有服务器集群的正式发布服务器组皆宕机的情况下,后续可以间隔时间检测正式发布服务器组是否正常,如果正式恢复,就可以切换回正式发布服务器组。
如先前所述的,访问请求一般包括头部部分和主体部分。访问请求有可能是通过微信平台、webservice等发出的,此时,访问请求的头部部分的信息是一样的,不能作为一些普通负载策略的标示。
在本发明,代理服务器可以包括数据库和解析模块(图中未示出)。数据库中可以预存有多种请求类型的请求格式。解析模块可以通过查找数据库以根据该用户请求的请求格式对访问请求的主体部分进行解析,以获取用户ID,由此可以作为负载均衡策略的标识。
图4是示出了根据本发明的一方面的代理方法400的流程图。如图4所示,代理方法400可包括以下步骤:
在步骤401:对访问请求执行域名解析,将访问请求解析至第一代理服务器。
在一实例中,基于访问请求的发起位置将所述访问请求解析至多个代理服务器中的该第一代理服务器,这多个代理服务器部署于不同的地域,每个地域内部署有相应的服务器集群。该访问请求的发起位置落在所述第一代理服务器所处的第一地域内
在步骤402:由该第一代理服务器基于自身的配置信息将访问请求代理至第一服务器集群中的正式发布服务器组,该第一服务器集群包括用于提供访问服务的正式发布服务器组和用于服务器升级的预发布服务器组,该预发布服务器组在升级完毕后切换为正式发布服务器组以用于提供访问服务,而正式发布服务器组相应地切换为预发布服务器组以用于服务器升级。
在每个地域配置一个服务器集群的实例中,该第一服务器集群可以为该第一代理服务器的配置信息中首选地域内的服务器集群。
进一步地,第一代理服务器可基于负载均衡策略将访问请求代理至该第一服务器集群中的正式发布服务器组中的服务器。常用的负载均衡策略可包括轮循均衡、权重轮循均衡、随机均衡、响应速度均衡、最少连接数均衡、处理能力均衡、DNS响应均衡等。
若第一服务器集群的正式发布服务器组中的所有服务器均响应异常,则可由第一代理服务器基于自身的配置信息将访问请求代理至下一地域内的服务器集群中的正式发布服务器组直至访问请求得到正常响应。
在极端的情况下,若所有地域内的服务器集群的正式发布服务器组均响应异常,则可由第一代理服务器基于自身的配置信息将访问请求代理至第一服务器集群中的预发布服务器组。
在更极端的情况下,若第一服务器集群的预发布服务器组中的所有服务器均响应异常,则可由第一代理服务器基于自身的配置信息将访问请求代理至上述下一地域内的服务器集群中的预发布服务器组,重复此操作直至访问请求得到正常响应。
在所有服务器集群的正式发布服务器组皆宕机的情况下,后续可以间隔时间检测正式发布服务器组是否正常,如果正式恢复,就可以切换回正式发布服务器组。
在一实例中,可由第一代理服务器解析访问请求的主体部分以获取用户 ID,以用于负载均衡策略的标识。例如,第一代理服务器可基于本地存储的关于访问请求的请求格式对访问请求的主体部分执行解析。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
在本发明中,通过加入地域的概念,可以单独对某一个地域代理负载,也可以配置多个地域,对多个地域进行负载代理,多个地域进行切换,提供了代理的灵活性。另一方面,通过提供正式发布和预发布环境的实时切换,解决了所有代理服务器修改配置后需要重启后生效的问题,该技术不需要重启服务器,修改任何配置即实时生效,实现了动态代理的效果。
此外,相比nginx只能从请求头信息中获取负载策略相关内容,本发明通过解析请求体信息获取负载策略内容,从而加强了负载策略,解决了一般负载策略执行方式单一的问题,从而支持代理负载均衡多样性,例如可以支持微信和webservice等多种形式。
本领域技术人员将领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
结合本文所公开的实施例描述的各种解说性逻辑模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列 (FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在 RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、 CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk) 往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。
Claims (10)
1.一种用于网络代理的计算机可读介质,其上存储有程序,其特征在于,该程序被执行时实现用于网络的代理方法,所述方法包括:
对访问请求执行域名解析,将所述访问请求解析至多个代理服务器中的第一代理服务器,所述多个代理服务器部署于不同的地域;以及
由所述第一代理服务器基于自身的配置信息将所述访问请求代理至首选地域内的服务器集群;
所述将所述访问请求代理至首选地域内的服务器集群进一步包括:
若所述首选地域内的服务器集群中的所有服务器均响应异常,则由所述第一代理服务器基于自身的配置信息将所述访问请求代理至另一地域内的服务器集群;
所述代理服务器包括数据库和解析模块,所述数据库中存有多种请求类型的请求格式,所述解析模块通过查找数据库以根据所述访问请求的请求格式对访问请求的主体部分进行解析以获取用户ID,以作为负载均衡策略的标识。
2.如权利要求1所述的计算机可读介质,其特征在于,所述执行域名解析包括:
基于所述访问请求的发起位置将所述访问请求解析至所述第一代理服务器,所述访问请求的发起位置落在所述第一代理服务器所处的第一地域内。
3.如权利要求2所述的计算机可读介质,其特征在于,基于所述配置信息,所述首选地域内的服务器集群为所述第一地域内的服务器集群。
4.如权利要求1所述的计算机可读介质,其特征在于,所述将所述访问请求代理至首选地域内的服务器集群进一步包括:
基于负载均衡策略将所述访问请求代理至所述首选地域内的服务器集群中的一服务器。
5.如权利要求4所述的计算机可读介质,其特征在于,所述将所述访问请求代理至首选地域内的服务器集群进一步包括:
若所代理到的所述服务器响应异常,则再次基于负载均衡策略将所述访问请求代理至所述首选地域内的服务器集群中的其他服务器直至所述访问请求得到正常响应。
6.如权利要求4所述的计算机可读介质,其特征在于,还包括:
在将所述访问请求代理至另一地域内的服务器集群并且所述访问请求得到正常响应之后,修改所述配置信息以将所述另一地域配置为首选地域。
7.如权利要求4所述的计算机可读介质,其特征在于,所述负载均衡策略包括以下至少一者:轮循均衡、权重轮循均衡、随机均衡、响应速度均衡、最少连接数均衡、处理能力均衡、DNS响应均衡。
8.如权利要求4所述的计算机可读介质,其特征在于,所述访问请求包括头部部分和主体部分,所述代理方法还包括:
由所述第一代理服务器解析所述访问请求的主体部分以获取用户ID,以用于所述负载均衡策略的标识。
9.如权利要求8所述的计算机可读介质,其特征在于,所述第一代理服务器基于本地存储的关于所述访问请求的请求格式对所述访问请求的主体部分执行解析。
10.如权利要求1所述的计算机可读介质,其特征在于,所述计算机可读介质包括RAM、ROM、EEPROM、CD-ROM、同轴电缆、光纤电缆、双绞线、数字订户线、压缩碟、激光碟、光碟、数字多用碟、软盘和蓝光碟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910425062.XA CN110138872B (zh) | 2016-06-30 | 2016-06-30 | 一种用于网络代理的计算机可读介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610510314.5A CN105959413B (zh) | 2016-06-30 | 网络代理方法和代理系统 | |
CN201910425062.XA CN110138872B (zh) | 2016-06-30 | 2016-06-30 | 一种用于网络代理的计算机可读介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610510314.5A Division CN105959413B (zh) | 2016-06-30 | 2016-06-30 | 网络代理方法和代理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110138872A CN110138872A (zh) | 2019-08-16 |
CN110138872B true CN110138872B (zh) | 2022-02-25 |
Family
ID=56902466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910425062.XA Active CN110138872B (zh) | 2016-06-30 | 2016-06-30 | 一种用于网络代理的计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110138872B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764739A (zh) * | 2008-12-23 | 2010-06-30 | 康佳集团股份有限公司 | 一种基于移动网络的移动管理系统 |
CN104660707A (zh) * | 2015-03-09 | 2015-05-27 | 浙江万朋网络技术有限公司 | 一种基于地理位置的代理服务器均衡分配的方法 |
CN104969515A (zh) * | 2012-11-05 | 2015-10-07 | 柏思科技有限公司 | 处理dns请求的方法和网关 |
CN105100260A (zh) * | 2012-03-31 | 2015-11-25 | 北京奇虎科技有限公司 | 一种通过代理服务器进行访问的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454500B1 (en) * | 2000-09-26 | 2008-11-18 | Foundry Networks, Inc. | Global server load balancing |
WO2012084058A1 (en) * | 2010-12-23 | 2012-06-28 | Telefonaktiebolaget L M Ericsson (Publ) | Media broker server, method, computer program and computer program product for matching a media source and a media receiver |
CN104320488A (zh) * | 2014-11-11 | 2015-01-28 | 携程计算机技术(上海)有限公司 | 代理服务器系统及代理服务方法 |
-
2016
- 2016-06-30 CN CN201910425062.XA patent/CN110138872B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764739A (zh) * | 2008-12-23 | 2010-06-30 | 康佳集团股份有限公司 | 一种基于移动网络的移动管理系统 |
CN105100260A (zh) * | 2012-03-31 | 2015-11-25 | 北京奇虎科技有限公司 | 一种通过代理服务器进行访问的方法及装置 |
CN104969515A (zh) * | 2012-11-05 | 2015-10-07 | 柏思科技有限公司 | 处理dns请求的方法和网关 |
CN104660707A (zh) * | 2015-03-09 | 2015-05-27 | 浙江万朋网络技术有限公司 | 一种基于地理位置的代理服务器均衡分配的方法 |
Non-Patent Citations (2)
Title |
---|
CDN关键技术的研究及其系统设计;蒋业文;《中国优秀硕士学位论文全文数据库(电子期刊)》;20150131;正文第2.2-2.3节、第3.2.2-3.2.3节、第3.3节、第4.3-4.4节 * |
蒋业文.CDN关键技术的研究及其系统设计.《中国优秀硕士学位论文全文数据库(电子期刊)》.2015, * |
Also Published As
Publication number | Publication date |
---|---|
CN110138872A (zh) | 2019-08-16 |
CN105959413A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11863417B2 (en) | Routing mode and point-of-presence selection service | |
US10033627B1 (en) | Routing mode and point-of-presence selection service | |
US7953887B2 (en) | Asynchronous automated routing of user to optimal host | |
CN103051740B (zh) | 域名解析方法、dns服务器及域名解析系统 | |
JP5150769B2 (ja) | 要求ルーティングおよびクライアントロケーション情報を利用したルーティング情報の更新 | |
US9998533B2 (en) | P2P content caching system and method | |
US10601767B2 (en) | DNS query processing based on application information | |
JP2019212336A (ja) | 分散キャッシュクラスタ管理 | |
US11616831B1 (en) | Point to node in a multi-tiered middleware environment | |
CN110149397A (zh) | 一种微服务整合方法和装置 | |
US20080243634A1 (en) | Providing website hosting overage protection by transference to an overflow server | |
US20120054265A1 (en) | Optimized Content Distribution Based on Metrics Derived from the End User | |
US20120054266A1 (en) | Optimized Content Distribution Based on Metrics Derived from the End User | |
US20080243536A1 (en) | Providing website hosting overage protection by storage on an independent data server | |
JP2013507694A (ja) | データ通信高速化および効率化のためのシステムおよびその方法 | |
EP3066577B1 (en) | Content node selection using network performance profiles | |
US11734367B2 (en) | Direct data center request for proxy web scraping | |
CN105915655B (zh) | 网络代理方法和代理系统 | |
CN110138872B (zh) | 一种用于网络代理的计算机可读介质 | |
CN115883657A (zh) | 一种云盘服务加速调度的方法及系统 | |
CN114048028A (zh) | 服务调用方法、装置、存储介质和电子设备 | |
CN107508760B (zh) | 一种基于线路源ip进行负载分发的方法 | |
KR20170021098A (ko) | 프록시 서버, 상기 프록시 서버에서의 페이지 재구성 방법 | |
CN105959413B (zh) | 网络代理方法和代理系统 |
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 |