CN112491940A - 代理服务器的请求转发方法及装置、存储介质及电子设备 - Google Patents

代理服务器的请求转发方法及装置、存储介质及电子设备 Download PDF

Info

Publication number
CN112491940A
CN112491940A CN201910865449.7A CN201910865449A CN112491940A CN 112491940 A CN112491940 A CN 112491940A CN 201910865449 A CN201910865449 A CN 201910865449A CN 112491940 A CN112491940 A CN 112491940A
Authority
CN
China
Prior art keywords
proxy server
target
forwarding
request
forwarding rule
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.)
Granted
Application number
CN201910865449.7A
Other languages
English (en)
Other versions
CN112491940B (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.)
Beijing Jingdong Zhenshi Information Technology Co Ltd
Original Assignee
Beijing Jingdong Zhenshi 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 Beijing Jingdong Zhenshi Information Technology Co Ltd filed Critical Beijing Jingdong Zhenshi Information Technology Co Ltd
Priority to CN201910865449.7A priority Critical patent/CN112491940B/zh
Publication of CN112491940A publication Critical patent/CN112491940A/zh
Application granted granted Critical
Publication of CN112491940B publication Critical patent/CN112491940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/50Network services
    • H04L67/56Provisioning of proxy services
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及计算机技术领域,提供了一种代理服务器的转发方法及装置、计算机存储介质和电子设备。所述代理服务器的请求转发方法包括:获取客户端的请求信息,以根据所述请求信息获取已创建的代理服务器的目标实例;获取代理服务器的匹配脚本文件,以根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配;根据所述匹配的与目标实例关联的目标转发规则,以使得所述代理服务器实现所述请求信息的转发。本发明基于已创建的代理服务器的目标实例,可以实现代理服务器转发规则的灵活设置,实现代理服务器对客户端请求的转发的可扩展性,以及增加代理服务器对客户端请求转发的方式的多样性。

Description

代理服务器的请求转发方法及装置、存储介质及电子设备
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种代理服务器的请求转发方法及装置、计算机存储介质以及电子设备。
背景技术
代理服务器可以解决分布式系统的高并发问题,因此其成为大多数大型网站的核心技术。
以Nginx代理服务器为例,其在接收到前端的连接请求后,一般会根据设置的默认转发规则,将请求分发到不同的后端服务器进行处理,从而共同完成工作任务。
然而,现有技术中,用户难以根据自己的需求设置不同的转发规则,因此,现有的代理服务器的转发方法,无法实现转发规则的灵活配置。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于提供一种代理服务器的请求转发方法及装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服代理服务器转发规则难以灵活配置的问题。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的第一方面,提供了一种代理服务器的请求转发方法,包括:
获取客户端的请求信息,以根据所述请求信息获取已创建的代理服务器的目标实例;
获取代理服务器的匹配脚本文件,以根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配;
根据匹配的目标实例关联的目标转发规则,以使得所述代理服务器实现所述请求信息的转发。
在本发明的一种示例性实施方式中,基于前述方案,在根据所述请求信息获取已创建的代理服务器的目标实例之前,所述方法还包括:
获取所述目标实例的创建信息,以根据所述创建信息确定所述目标实例,其中,所述目标实例关联于目标转发规则。
在本发明的一种示例性实施方式中,基于前述方案,在根据所述创建信息确定所述目标实例之后,所述方法还包括:
保存所述目标实例至中间缓存,以通过所述中间缓存获取所述目标实例的信息。
在本发明的一种示例性实施方式中,基于前述方案,根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配,包括:
获取所述代理服务器的配置文件,以通过所述配置文件确定所述匹配脚本文件的运行环境;
根据所述运行环境执行所述匹配脚本文件,以实现所述代理服务器与所述目标实例关联的目标转发规则的匹配。
在本发明的一种示例性实施方式中,基于前述方案,实现所述代理服务器与所述目标实例关联的目标转发规则的匹配,包括:
获取所述配置文件中的环境变量,以通过所述环境变量实现所述代理服务器与中间缓存的连接,其中,所述中间缓存保存有与所述目标实例关联的目标转发规则。
在本发明的一种示例性实施方式中,基于前述方案,通过所述环境变量实现所述代理服务器与中间缓存的连接,包括:
根据连接函数进行代理服务器与中间缓存的连接;
根据验证函数确定所述连接是否正确。
在本发明的一种示例性实施方式中,基于前述方案,所述方法还包括:
若所述连接正确,获取所述目标实例关联的目标转发规则;
根据所述目标转发规则执行目标转发规则的函数,以通过所述函数实现代理服务器的请求转发。
根据本发明的第二方面,提供了一种代理服务器的请求转发的装置,包括:
请求信息获取模块,所述请求信息获取模块被配置为获取客户端的请求信息,以根据所述请求信息确定代理服务器的目标实例;
目标转发规则匹配模块,所述目标转发规则匹配模块被配置为获取代理服务器的匹配脚本文件,以根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配;
请求转发模块,所述请求转发模块被配置为根据所述匹配的与目标实例关联的目标转发规则,以使得所述代理服务器实现所述请求信息的转发。
根据本发明的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施方式中第一方面所述的代理服务器的请求转发方法。
根据本发明实施方式的第四方面,提供了一种电子设备,包括:处理器;以及,存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施方式中第一方面所述的代理服务器的请求转发方法。
由上述技术方案可知,本发明示例性实施方式中的代理服务器的请求转发方法、代理服务器的请求转发装置,以及实现所述代理服务器的转发方法的计算机可读存储介质及电子设备,至少具备以下有益效果:
在本发明的一些示例性实施方式所提供的技术方案中,基于已创建的代理服务器的目标实例,可以匹配到用户设置的目标转发规则,进而使得代理服务器根据用户设置的目标转发规则实现请求信息的转发。与现有的代理服务器根据默认转发规则进行请求转发的技术相比,本发明技术方案可以根据用户设置的转发规则实现代理服务器的请求转发。因此,本发明的技术方案可以实现对代理服务器转发规则的灵活设置、实现代理服务器对客户端请求转发的可扩展性,以及增加代理服务器对客户端请求转发的方式的多样性。
本发明应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施方式,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明的一个示例性实施方式中代理服务器的请求转发方法的流程示意图;
图2示出本发明的一个示例性实施方式中代理服务器的目标实例创建方法的流程图;
图3示出本发明的一个示例性实施方式中代理服务器的目标实例的启动方法的流程图;
图4示出本发明的一个示例性实施方式中代理服务器与目标转发规则进行匹配的方法的流程示意图;
图5示出本发明的一个示例性实施方式中代理服务器根据目标转发规则实现请求转发的方法的流程示意图;
图6示出本发明一个示例性实施方式中代理服务器的请求转发装置的结构示意图;
图7示出本发明一个示例性实施方式中计算机存储介质的结构示意图;以及,
图8示出本发明一个示例性实施方式中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明的各方面变得模糊。
本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
现有的另一种相关技术中,代理服务器根据默认的转发规则(URI,UniformResource Identifier,统一资源标识符)进行客户端请求的转发。但在某些场景下,代理服务器需要按照用户需求的转发规则进行请求的转发。然而,现有的转发方法难以实现代理服务器转发规则的灵活选择与配置。
在本发明的实施方式中,首先提供了一种代理服务器的请求转发方法,至少在一定程度上克服上述现有的相关技术中存在的缺陷。
图1示出本发明的一种示例性实施方式中代理服务器的请求转发的流程示意图,本实施方式提供的代理服务器的请求转发方法应用于终端设备。参考图1,该方法包括:
步骤S110:获取客户端的请求信息,以根据所述请求信息获取已创建的代理服务器的目标实例;
步骤S120:获取代理服务器的匹配脚本文件,以根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配;
步骤S130:根据所述匹配的与目标实例关联的目标转发规则,以使得所述代理服务器实现所述请求信息的转发。
在图1所示实施方式所提供的技术方案中,基于已创建的代理服务器的目标实例,可以匹配到用户设置的目标转发规则,进而使得代理服务器根据用户设置的目标转发规则实现请求信息的转发。与现有的代理服务器根据默认转发规则进行请求转发的技术相比,本发明技术方案可以根据用户设置的转发规则实现代理服务器的请求转发。因此,本发明的技术方案可以实现对代理服务器转发规则的灵活设置、实现代理服务器对客户端请求转发的可扩展性,以及增加代理服务器对客户端请求转发的方式的多样性。
下面对图1所示实施方式中的各个步骤的具体实施方式进行详细阐述:
步骤S110:获取客户端的请求信息,以根据所述请求信息获取已创建的代理服务器的目标实例。
在示例性的实施方式中,客户端可以是与服务器相对应,为客户提供本地服务的程序,其可以包括PC客户端、移动客户端、Web客户端等。请求信息可以是Internet(互联网)发送给代理服务器的连接请求,代理服务器将该连接请求转发给对应的内部网络服务器,以完成相应的任务。代理服务器可以包括Nginx反向代理服务器等,本示例性实施方式对此不做特殊限定。
在根据上述的请求信息获取已创建的代理服务器的目标实例之前,可以获取目标实例的创建信息以及创建请求信息,以根据该创建信息确定上述的代理服务器的目标实例,根据该创建信息创建上述的目标实例。
下面,将通过图2所示实施方式解释上述的目标实例的创建方法,以及通过图3所示实施方式解释对上述目标实例的启动方法。
示例性的,参考图2,对创建代理服务器的目标实例的具体实施方式进行详细阐述。
在步骤S210中:获取所述目标实例的创建信息,以通过所述创建信息确定所述目标实例。
示例性的,目标实例可以是能够在容器中运行的代理服务器的实例,该容器可以是Docker容器。在创建上述的目标实例之前,获取该目标实例的创建信息,根据该创建信息确定目标实例,以使得该目标实例的镜像文件能够在Docker容器中运行。
Marathon是容器的部署系统,用户可以通过Marathon提交、监控并调度容器的应用实例。因此,上述的创建信息可以包括:登录用户的providerID、目标实例的ID、目标实例对Marathon-LB暴露的端口、Marathon获取目标实例的镜像地址、设置Marathon环境变量等。
获取到上述的用户的providerId和目标实例ID之后,可以根据该用户的providerID和该目标实例的ID确定目标实例在Marathon中的ID。这样,可以将上述的目标实例和上述的用户设置的目标转发规则相关联,同时,该目标实例在Marathon中的ID是上述的目标实例的唯一标识。然后,调用port-service获取目标实例对Marathon-LB暴露的端口;读取properties,确定Marathon获取目标实例的镜像地址;设置Marathon环境变量,以在后续的操作中,通过该环境变量从中间缓存中读取已创建的目标实例的信息。通过上述的创建信息可以确定上述的目标实例,以使得该目标实例的镜像文件可以通过Marathon技术在Docker容器中运行。
在示例性的实施方式中,继续参考图2,在步骤S220中,获取所述目标实例的创建请求信息,以根据所述请求信息创建所述目标实例。
其中,创建请求信息可以是用户登录开源的中间件平台向Marathon接口发送创建代理服务器的目标实例的请求。接收到该创建请求信息之后,Marathon接口根据上述的创建信息创建目标实例。在目标实例创建成功之后,调用gateway-service进行domain或者HaProxy的绑定,以确定代理服务器的目标实例和主机上的代理服务器的映射关系。绑定成功之后,把上述的目标实例的信息存储到数据库中,方便用户以后在中间件平台进行目标实例的维护操作,例如,根据新的需求对目标实例进行修改等等。同时,把上述的目标实例信息存储到中间缓存,该中间缓存可以是redis缓存。这样通过上述的Marathon环境变量可以读取中间缓存,从而更快速的获取已创建的目标实例的信息。
目标实例创建完成之后,实例状态默认是Suspend(暂停,挂起)的,需要用户在中间件界面点击启用操作,才可以启动容器中的代理服务器的实例,从而实现客户端请求的转发。
示例性的,图3示出了本发明的一个示例性实施方式中代理服务器的目标实例的启动方法的流程图。参考图3,该图所示的启动方法包括以下步骤:
在步骤310中:获取启动信号,以通过所述启动信号确定Docker容器的镜像。
示例性的,启动信号可以是用户在中间件平台点击的启动操作。用户点击启动操作后,中间件平台会向Marathon发送启动操作命令。Marathon在接收到启动命令后,会下载Docker镜像,根据所述镜像运行Docker容器。
在步骤S320中:获取目标实例的镜像文件,以根据所述镜像文件在所述Docker容器中运行所述目标实例。
示例性的,目标实例的镜像文件可以通过Docker容器的Dockerfile进行创建。其可以包括:在该Dockerfile中指定宿主机与容器之间的映射端口、通过WORKDIR来指定代理服务器的工作目录。创建完目标实例的镜像文件之后,可以在Docker容器中根据该镜像文件运行目标实例。
创建的目标实例可以与用户设置的目标转发规则相关联,每个目标实例只能关联一个目标转发规则。这样,根据上述的启动方法启动上述的目标实例之后,可以使得代理服务器获取到与该目标实例相关联的目标转发规则,从而根据该目标转发规则实现客户端请求的转发。
其中,目标转发规则可以包括客户端请求的IP地址、与客户端应用关联的URL(Uniform Resource Locator,统一资源定位符)、客户端请求的Cookie信息(储存在用户本地终端上的数据)等。目标转发规则可以是用户根据自己的需求在中间平台上进行设置。其中,该中间件平台可以是任何的开源的第三方平台,在该平台上用户可以实现转发规则的灵活选择与设置。
创建的目标实例被启动之后,可以获取代理服务器的匹配脚本文件,通过该匹配脚本文件可以使得代理服务器与目标转发规则相匹配,代理服务器根据目标转发规则进行客户端请求信息的转发。
在示例性的实施方式中,继续参考图1,在步骤S120中:获取代理服务器的匹配脚本文件,以根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配。
示例性的,匹配脚本文件可以包括matchURL、matchIP、matchCookie等。匹配脚本文件可以通过任何一个能够修改代理服务器设置的计算机编程语言实现,以Ngnix代理服务器为例,其匹配脚本文件可以通过Lua语言编程实现。通过该匹配脚本文件,可以使得代理服务器匹配到用户设置的目标转发规则,从而根据该目标转发规则完成客户端请求的转发。
其中,用户设置的目标转发规则存储在中间缓存中,该中间缓存可以是redis缓存。中间缓存可以使得代理服务器能够更快的获取到匹配的目标转发规则。
根据上述的匹配脚本文件进行代理服务器与目标转发规则的匹配时,可以获取代理服务器的配置文件,该配置文件可以为匹配脚本文件提供运行环境,在该运行环境中执行匹配脚本文件,从而实现代理服务器与目标转发规则的匹配。
示例性的,图4示出本发明的一个示例性实施方式中代理服务器与目标转发规则进行匹配的方法的流程示意图。参考图4,该匹配方法可以包括以下步骤:
在步骤S410中:获取所述代理服务器的配置文件,以通过所述配置文件确定所述匹配脚本文件的运行环境,根据所述运行环境执行所述匹配脚本文件。
示例性的,配置文件可以包括:匹配脚本文件访问redis缓存所需要的环境变量、搜索用户编写的库文件或者第三方的库文件的脚本、指定Lua虚拟机所依赖的模块的脚本。其中,配置文件中的变量和脚本为匹配脚本文件的执行提供了运行环境。在获取到配置文件之后,可以加载并执行匹配脚本文件,通过匹配脚本文件使得代理服务器和目标转发规则相匹配。
在步骤S420中:获取所述配置文件中的环境变量,以通过所述环境变量实现所述代理服务器与中间缓存的连接。
示例性的,环境变量可以是通过调用上述的Marathon中的REST API设置得到的值,该值可以用于访问中间缓存。其中,中间缓存中保存有用户设置的目标转发规则。在获取环境变量的值之后,可以获取用于连接中间缓存的变量。其中,所述中间缓存可以是redis,该环境变量可以包括REDIS_HOST、REDIS_PORT、REDIS_PASSWORD等。
获取到用于连接中间缓存的变量之后,可以通过连接函数进行该中间缓存的连接,通过验证函数验证上述的环境变量REDIS_PASSWORD的值的正确性,以确定该连接是否正确。
在步骤S430中:获取所述中间缓存中的目标转发规则,以实现所述代理服务器与所述目标转发规则的匹配。
示例性的,确定上述的连接的正确性之后,根据该连接可以获取上述的中间缓存中保存的用户设置的目标转发规则,实现代理服务器与用户设置的目标转发规则的匹配。代理服务器可以根据匹配到的目标转发规则实现客户端请求信息的转发。
在示例性的实施方式中,继续参考图1,在步骤S130中:根据所述匹配的与目标实例关联的目标转发规则,以使得所述代理服务器实现所述请求信息的转发。
示例性的,代理服务器接收到客户端的请求信息之后,匹配脚本文件可以根据客户端的请求信息,为代理服务器进行目标转发规则的匹配。代理服务器根据匹配到的目标转发规则,将客户端的请求信息转发到内部的web服务器上,以完成相应的任务。
在本发明的一个示例性实施方式中,提供了一种代理服务器根据目标转发规则实现请求转发的方法。参考图5,示出了代理服务器根据目标转发规则实现请求转发的方法的流程图。该方法可以包括以下步骤:
在步骤S510中:获取客户端的连接请求,根据所述连接请求确定目标转发规则的类型。
示例性的,代理服务器接收到客户端的连接请求后,根据该客户端请求的内部服务器的地址,确定客户端的请求的地址对应的目标转发规则的类型。根据该转发规则类型获取客户端的连接请求信息。例如,当目标转发规则类型是URI(Uniform ResourceIdentifier,统一资源标识符)时,获取用户设置的目标转发规则中的地址信息;当目标转发规则类型是Cookie时,获取客户端请求的Cookie信息。根据用户设置的目标转发规则来获取客户端的请求信息以实现客户端请求的转发。
在步骤S520中:根据所述目标转发规则的类型调用匹配脚本文件,以使得代理服务器通过所述匹配脚本文件获取所述目标转发规则。
示例性的,在确定出目标转发规则的类型之后,代理服务器通过匹配脚本文件去调用该目标转发规则的函数,执行该目标转发规则对应的函数,根据该目标转发规则的函数将连接请求发送给内部web服务器。
在步骤S530中:根据所述目标转发规则发送所述连接请求至目标服务器。
示例性的,目标服务器可以是客户端请求连接的内部web服务器。当该目标转发规则的类型是应用程序(APP)对应的URI(Uniform Resource Identifier,统一资源标识符)时,向服务器后台请求该URI对应的域名服务,根据该域名服务获取该医用程序对外访问的地址,代理服务器将根据该访问地址将上述的客户端的连接请求转发到对应的内部web服务器上;当该目标转发规则的类型是Cookie信息或者其它的类型时,获取客户端连接请求的IP地址,将上述的连接请求转发到该IP地址对应的内部web服务器上。
在示例性实施方式中,用户通过设置的目标转发规则可以使得代理服务器按照用户的需求进行客户端的连接请求的转发,实现了代理服务器的转发规则的灵活配置与选择。
本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
进一步的,本示例实施方式中,还提供了一种代理服务器的请求转发装置。参考图6所示,该代理服务器的请求转发装置600包括:请求信息获取模块610、目标转发规则匹配模块620、请求转发模块630。其中:
上述请求信息获取模块610,被配置为获取客户端的请求信息,以根据所述请求信息确定代理服务器的目标实例;
上述目标转发规则匹配模块620,被配置为获取代理服务器的匹配脚本文件,以根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配;
上述请求转发模块630,被配置为根据所述匹配的与目标实例关联的目标转发规则,以使得所述代理服务器实现所述请求信息的转发。
在本发明的一种示例性实施方式中,基于前述实施方式,上述请求信息获取模块610,包括:请求信息获取单元和目标实例获取单元。其中:
上述的请求信息获取单元被配置为:获取客户端的请求信息,以根据该请求信息确定代理服务器的目标实例;上述的目标实例获取单元被配置为:获取已创建的目标实例,以通过所述目标实例确定目标转发规则。
在本发明的一种示例性实施方式中,基于前述实施方式,上述目标转发规则匹配模块620,包括:匹配脚本文件获取单元、配置文件获取单元、匹配单元。其中:
上述的匹配脚本文件获取单元被配置为:获取代理服务器的匹配脚本文件,以根据该匹配脚本文件使得代理服务器与上述的目标转发规则进行匹配;上述的配置文件获取单元被配置为:获取代理服务器的配置文件,以通过该配置文件确定上述的匹配脚本文件的运行环境;上述的单元被配置为:获取上述的配置文件中的环境变量,以通过该环境变量实现代理服务器与目标转发规则的匹配。
在本发明的一种示例性实施方式中,基于前述实施方式,上述请求转发模块630,包括:目标转发规则获取单元和请求信息转发单元。其中:
上述的目标转发规则获取单元被配置为:获取上述的与代理服务器进行匹配的目标转发规则,以使得代理服务器根据该目标转发规则进行请求信息的转发;上述的请求信息转发单元被配置为:执行上述的目标转发规则的函数,以使得代理服务器将客户端的请求信息转发至内部的web服务器。
上述代理服务器的请求转发装置中各单元的具体细节已经在对应的代理服务器的请求转发方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施方式的方法。
在本发明示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,在本发明的示例性实施方式中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的代理服务器的请求转发方法。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施方式的方法。
此外,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其他实施方式。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本发明的真正范围和精神由权利要求指出。

Claims (10)

1.一种代理服务器的请求转发方法,其特征在于,包括:
获取客户端的请求信息,以根据所述请求信息获取已创建的代理服务器的目标实例;
获取代理服务器的匹配脚本文件,以根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配;
根据所述匹配的与目标实例关联的目标转发规则,以使得所述代理服务器实现所述请求信息的转发。
2.根据权利要求1所述的代理服务器的请求转发方法,其特征在于,在根据所述请求信息获取已创建的代理服务器的目标实例之前,所述方法还包括:
获取所述目标实例的创建信息,以根据所述创建信息确定所述目标实例,其中,所述目标实例关联于所述目标转发规则。
3.根据权利要求2所述的代理服务器的请求转发方法,其特征在于,在根据所述创建信息确定所述目标实例之后,所述方法还包括:
保存所述目标实例至中间缓存,以通过所述中间缓存获取所述目标实例的信息。
4.根据权利要求1所述的代理服务器的请求转发方法,其特征在于,根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配,包括:
获取所述代理服务器的配置文件,以通过所述配置文件确定所述匹配脚本文件的运行环境;
根据所述运行环境执行所述匹配脚本文件,以实现所述代理服务器与所述目标实例关联的目标转发规则的匹配。
5.根据权利要求4所述的代理服务器的请求转发方法,其特征在于,实现所述代理服务器与所述目标实例关联的目标转发规则的匹配,包括:
获取所述配置文件中的环境变量,以通过所述环境变量实现所述代理服务器与中间缓存的连接,其中,所述中间缓存保存有与所述目标实例关联的目标转发规则。
6.根据权利要求5所述的代理服务器的请求转发方法,其特征在于,通过所述环境变量实现所述代理服务器与中间缓存的连接,包括:
根据连接函数进行代理服务器与中间缓存的连接;
根据验证函数确定所述连接是否正确。
7.根据权利要求6所述的代理服务器的请求转发方法,其特征在于,所述方法还包括:
若所述连接正确,获取与所述目标实例关联的目标转发规则;
根据所述目标转发规则执行目标转发规则的函数,以通过所述函数实现代理服务器的请求转发。
8.一种代理服务器的请求转发的装置,其特征在于,包括:
请求信息获取模块,所述请求信息获取模块被配置为获取客户端的请求信息,以根据所述请求信息确定代理服务器的目标实例;
目标转发规则匹配模块,所述目标转发规则匹配模块被配置为获取代理服务器的匹配脚本文件,以根据所述匹配脚本文件使得所述代理服务器与所述目标实例关联的目标转发规则进行匹配;
请求转发模块,所述请求转发模块被配置为根据所述匹配的与目标实例关联的目标转发规则,以使得所述代理服务器实现所述请求信息的转发。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的代理服务器的请求转发方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的代理服务器的请求转发方法。
CN201910865449.7A 2019-09-12 2019-09-12 代理服务器的请求转发方法及装置、存储介质及电子设备 Active CN112491940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910865449.7A CN112491940B (zh) 2019-09-12 2019-09-12 代理服务器的请求转发方法及装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910865449.7A CN112491940B (zh) 2019-09-12 2019-09-12 代理服务器的请求转发方法及装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN112491940A true CN112491940A (zh) 2021-03-12
CN112491940B CN112491940B (zh) 2024-05-24

Family

ID=74920710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910865449.7A Active CN112491940B (zh) 2019-09-12 2019-09-12 代理服务器的请求转发方法及装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112491940B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542431A (zh) * 2021-08-02 2021-10-22 北京百度网讯科技有限公司 信息处理方法、装置、电子设备及存储介质
CN115118787A (zh) * 2022-06-21 2022-09-27 京东科技信息技术有限公司 一种服务控制方法、系统、存储介质及电子设备

Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009033376A1 (fr) * 2007-09-13 2009-03-19 Huawei Technologies Co., Ltd. Procédé et système de sélection de chemin
US20130346470A1 (en) * 2012-06-26 2013-12-26 Juniper Networks, Inc. Distributed processing of network device tasks
CN103609070A (zh) * 2012-10-29 2014-02-26 华为技术有限公司 网络流量检测方法、系统、设备及控制器
US20140344332A1 (en) * 2013-05-20 2014-11-20 Citrix Systems, Inc. Multimedia Redirection in a Virtualized Environment Using a Proxy Server
US20150222600A1 (en) * 2014-01-31 2015-08-06 Ntrepid Corporation Method and apparatus for transmitting network traffic via a proxy device
CN105100263A (zh) * 2015-08-20 2015-11-25 百度在线网络技术(北京)有限公司 一种反向代理方法及装置
CN105493467A (zh) * 2013-08-21 2016-04-13 高通股份有限公司 更新向网际协议多媒体子系统服务的相同用户注册的客户端设备的联系人信息
CN105898726A (zh) * 2015-10-22 2016-08-24 乐视致新电子科技(天津)有限公司 一种免费流量客户端代理方法及装置
US20160285735A1 (en) * 2015-03-23 2016-09-29 Brocade Communications Systems, Inc. Techniques for efficiently programming forwarding rules in a network system
CN106301947A (zh) * 2016-08-31 2017-01-04 广州唯品会信息科技有限公司 业务信息处理系统和方法
WO2017067230A1 (zh) * 2015-10-21 2017-04-27 中兴通讯股份有限公司 一种基于微服务架构扩展软件功能的方法及装置
US20170366416A1 (en) * 2015-06-02 2017-12-21 ALTR Solutions, Inc. Gui and high-level api wrapper for software defined networking and software defined access for controlling network routing and rules
CN107979493A (zh) * 2017-11-21 2018-05-01 平安科技(深圳)有限公司 平台即服务paas容器平台的构建方法、服务器及存储介质
CN108039975A (zh) * 2017-12-21 2018-05-15 北京搜狐新媒体信息技术有限公司 容器集群管理系统及其应用方法
CN108712457A (zh) * 2018-04-03 2018-10-26 苏宁易购集团股份有限公司 基于Nginx反向代理的后端服务器动态负载调整方法及装置
CN108920222A (zh) * 2018-07-12 2018-11-30 北京京东金融科技控股有限公司 一种基于规则引擎的业务处理方法和装置
CN109032760A (zh) * 2018-08-01 2018-12-18 北京百度网讯科技有限公司 用于部署应用的方法和装置
CN109218368A (zh) * 2017-07-05 2019-01-15 北京京东尚科信息技术有限公司 实现Http反向代理的方法、装置、电子设备和可读介质
WO2019061521A1 (zh) * 2017-09-30 2019-04-04 深圳前海达闼云端智能科技有限公司 一种代理转发方法和装置、代理服务器和多级代理网络
CN109672711A (zh) * 2017-10-17 2019-04-23 航天信息股份有限公司 一种基于反向代理服务器 Nginx 的http 请求处理方法及系统
CN109729187A (zh) * 2019-01-09 2019-05-07 广州视源电子科技股份有限公司 一种代理通信方法、系统、装置及存储介质
CN110049081A (zh) * 2018-01-17 2019-07-23 广东亿迅科技有限公司 用于搭建及使用高可用性Docker私库的方法和系统
CN110109931A (zh) * 2017-12-27 2019-08-09 航天信息股份有限公司 一种用于防止rac实例间数据访问发生冲突的方法及系统

Patent Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009033376A1 (fr) * 2007-09-13 2009-03-19 Huawei Technologies Co., Ltd. Procédé et système de sélection de chemin
US20130346470A1 (en) * 2012-06-26 2013-12-26 Juniper Networks, Inc. Distributed processing of network device tasks
CN103609070A (zh) * 2012-10-29 2014-02-26 华为技术有限公司 网络流量检测方法、系统、设备及控制器
US20140344332A1 (en) * 2013-05-20 2014-11-20 Citrix Systems, Inc. Multimedia Redirection in a Virtualized Environment Using a Proxy Server
CN105493467A (zh) * 2013-08-21 2016-04-13 高通股份有限公司 更新向网际协议多媒体子系统服务的相同用户注册的客户端设备的联系人信息
US20150222600A1 (en) * 2014-01-31 2015-08-06 Ntrepid Corporation Method and apparatus for transmitting network traffic via a proxy device
US20160285735A1 (en) * 2015-03-23 2016-09-29 Brocade Communications Systems, Inc. Techniques for efficiently programming forwarding rules in a network system
US20170366416A1 (en) * 2015-06-02 2017-12-21 ALTR Solutions, Inc. Gui and high-level api wrapper for software defined networking and software defined access for controlling network routing and rules
CN105100263A (zh) * 2015-08-20 2015-11-25 百度在线网络技术(北京)有限公司 一种反向代理方法及装置
WO2017067230A1 (zh) * 2015-10-21 2017-04-27 中兴通讯股份有限公司 一种基于微服务架构扩展软件功能的方法及装置
CN106612188A (zh) * 2015-10-21 2017-05-03 中兴通讯股份有限公司 一种基于微服务架构扩展软件功能的方法及装置
CN105898726A (zh) * 2015-10-22 2016-08-24 乐视致新电子科技(天津)有限公司 一种免费流量客户端代理方法及装置
CN106301947A (zh) * 2016-08-31 2017-01-04 广州唯品会信息科技有限公司 业务信息处理系统和方法
CN109218368A (zh) * 2017-07-05 2019-01-15 北京京东尚科信息技术有限公司 实现Http反向代理的方法、装置、电子设备和可读介质
WO2019061521A1 (zh) * 2017-09-30 2019-04-04 深圳前海达闼云端智能科技有限公司 一种代理转发方法和装置、代理服务器和多级代理网络
CN109672711A (zh) * 2017-10-17 2019-04-23 航天信息股份有限公司 一种基于反向代理服务器 Nginx 的http 请求处理方法及系统
CN107979493A (zh) * 2017-11-21 2018-05-01 平安科技(深圳)有限公司 平台即服务paas容器平台的构建方法、服务器及存储介质
CN108039975A (zh) * 2017-12-21 2018-05-15 北京搜狐新媒体信息技术有限公司 容器集群管理系统及其应用方法
CN110109931A (zh) * 2017-12-27 2019-08-09 航天信息股份有限公司 一种用于防止rac实例间数据访问发生冲突的方法及系统
CN110049081A (zh) * 2018-01-17 2019-07-23 广东亿迅科技有限公司 用于搭建及使用高可用性Docker私库的方法和系统
CN108712457A (zh) * 2018-04-03 2018-10-26 苏宁易购集团股份有限公司 基于Nginx反向代理的后端服务器动态负载调整方法及装置
CN108920222A (zh) * 2018-07-12 2018-11-30 北京京东金融科技控股有限公司 一种基于规则引擎的业务处理方法和装置
CN109032760A (zh) * 2018-08-01 2018-12-18 北京百度网讯科技有限公司 用于部署应用的方法和装置
CN109729187A (zh) * 2019-01-09 2019-05-07 广州视源电子科技股份有限公司 一种代理通信方法、系统、装置及存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
TIANMING-TOM: "服务器托管端口映射以及端口转发如何设置", 《CSDN》 *
仇婕;林浒;杨海波;: "SIP Servlet应用路由机制", 计算机系统应用, no. 01 *
蒋树清;王明蓉;: "基于XMLHTTP的代理设计与实现", 科技信息, no. 35 *
袁刚, 雷光波, 傅鹂, 向宏: "高性能代理服务器的实现", 计算机工程与应用, no. 05 *
顾建伟: "代理集群服务质量和负载均衡系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542431A (zh) * 2021-08-02 2021-10-22 北京百度网讯科技有限公司 信息处理方法、装置、电子设备及存储介质
CN113542431B (zh) * 2021-08-02 2024-05-10 北京百度网讯科技有限公司 信息处理方法、装置、电子设备及存储介质
CN115118787A (zh) * 2022-06-21 2022-09-27 京东科技信息技术有限公司 一种服务控制方法、系统、存储介质及电子设备

Also Published As

Publication number Publication date
CN112491940B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
US10827008B2 (en) Integrated user interface for consuming services across different distributed networks
US10430172B2 (en) Re-configuration in cloud computing environments
CN106815031B (zh) 内核模块加载方法和装置
US20140366093A1 (en) Apparatus and method for virtual desktop service
CN110083455B (zh) 图计算处理方法、装置、介质及电子设备
CN113312037A (zh) 应用于微服务的数据处理方法、装置、设备和存储介质
CN110858172A (zh) 一种自动化测试代码生成方法和装置
CN109951553B (zh) 数据处理方法、系统、电子设备以及计算机可读存储介质
US11934287B2 (en) Method, electronic device and computer program product for processing data
CN109299331B (zh) Air展现超文本标记语言HTML5页面的方法及装置
CN112491940B (zh) 代理服务器的请求转发方法及装置、存储介质及电子设备
CN110825425A (zh) 配置数据管理方法及装置、电子设备、存储介质
US10324766B1 (en) Task profile collection
CN113014669B (zh) 基于rpa的代理服务方法、系统、服务器和存储介质
CN111800511B (zh) 同步登录态的处理方法、系统、设备及可读存储介质
CN112394907A (zh) 基于容器的交付系统构建方法、应用交付方法和交付系统
US10776133B2 (en) Preemptive loading of code dependencies for improved performance
CN110825622A (zh) 软件测试方法、装置、设备和计算机可读介质
CN112131092A (zh) 页面调试方法和装置
CN111338928A (zh) 基于chrome浏览器测试的方法及装置
CN110825370A (zh) 移动端应用开发方法、装置及系统
US11030087B2 (en) Systems and methods for automated invocation of accessibility validations in accessibility scripts
CN113742104A (zh) 基于ai的rpa分身功能的生成方法及装置
CN113791819A (zh) 接口文档生成方法和装置、存储介质、电子设备
CN114579167A (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