实现Http反向代理的方法、装置、电子设备和可读介质制造方法及图纸

技术编号:20119277 阅读:28 留言:0更新日期:2019-01-16 12:19
本发明专利技术提供一种实现Http反向代理的方法、装置、电子设备和可读介质,能够通过Java实现Http反向代理,并可以根据部分业务需要在反向代理之前自定义实现例如用户登录等个性化操作,还可以根据用户权限将用户动态代理到指定地址。该方法包括:接收Web用户的Http请求;在验证Web用户的Http请求符合预设验证规则之后,查询Web用户对应的预设反向代理地址;根据预设反向代理地址将Web用户的Http请求反向代理至目标服务器。

Method, Device, Electronic Equipment and Readable Media for Implementing Http Reverse Agent

The invention provides a method, device, electronic equipment and readable medium for realizing Http reverse proxy. It can realize Http reverse proxy through Java, customize personalized operation such as user login before reverse proxy according to some business needs, and dynamically proxy users to specified addresses according to user privileges. The method includes: receiving the Http requests of Web users; querying the corresponding preset reverse proxy address of Web users after verifying that the Http requests of Web users conform to the preset verification rules; and reverse proxying Web users'Http requests to the target server according to the preset reverse proxy address.

【技术实现步骤摘要】
实现Http反向代理的方法、装置、电子设备和可读介质
本专利技术涉及计算机
,尤其涉及一种实现Http反向代理的方法、装置、电子设备和可读介质。
技术介绍
当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。现有技术中可以实现反向代理的软件有很多,比较主流的nginx、apache都是通用的高性能Http反向代理服务,可以通过系统配置文件方式实现高性能Http反向代理。目前反向代理Web服务器已经使用的非常广泛。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:现有技术的反向代理功能对一些特殊场景使用支持不够:无法根据部分业务需要在反向代理之前自定义实现个性化操作,例如对反向代理地址访问权限的控制、或者根据用户需求增加额外代理参数的设计;也无法实现根据不同用户的权限动态调整反向代理地址。
技术实现思路
有鉴于此,本专利技术实施例提供一种实现Http反向代理的方法、装置、电子设备和可读介质,能够通过Java实现Http反向代理,并可以根据部分业务需要在反向代理之前自定义实现例如用户登录等个性化操作,还可以根据用户权限将用户动态代理到指定地址。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种实现Http反向代理的方法。本专利技术实施例的一种实现Http反向代理的方法包括:接收Web用户的Http请求;在验证Web用户的Http请求符合预设验证规则之后,查询Web用户对应的预设反向代理地址;根据预设反向代理地址将Web用户的Http请求反向代理至目标服务器。可选地,Http请求为基于Presto查询引擎的请求和/或基于Hadoop的请求。可选地,验证Web用户的Http请求符合预设验证规则包括:验证Web用户的访问权限符合预设权限规则;和/或根据业务需求验证Web用户的代理参数符合预设代理参数规则。可选地,预设反向代理地址是指根据不同Web用户的权限为Web用户预先配置的、可动态调整的反向代理地址。可选地,根据预设反向代理地址将Web用户的Http请求反向代理至目标服务器包括:创建servletRequest对象,在servletRequest对象中封装接收到的Http请求;解析servletRequest对象,获取Http请求的方式、参数;创建DefaultHttpClient对象实例,按照Http请求的方式、参数、头信息和对应的预设反向代理地址URL信息生成HttpRequest对象并发送至目标服务器;接收目标服务器返回的HttpResponse对象;解析HttpResponse对象,将从HttpResponse对象中获取的Http请求的响应结果和头信息赋值给servletResponse对象,以生成响应数据;把servletResponse对象中的响应数据回传给Web用户。为实现上述目的,根据本专利技术实施例的另一方面,提供了一种实现Http反向代理的装置。本专利技术实施例的一种实现Http反向代理的装置包括:接收模块,用于接收Web用户的Http请求;验证模块,用于在验证Web用户的Http请求符合预设验证规则之后,查询Web用户对应的预设反向代理地址;定向代理模块,用于根据预设反向代理地址将Web用户的Http请求反向代理至目标服务器。可选地,Http请求为基于Presto查询引擎的请求和/或基于Hadoop的请求。可选地,验证模块还用于:验证Web用户的访问权限符合预设权限规则;和/或根据业务需求验证Web用户的代理参数符合预设代理参数规则。可选地,预设反向代理地址是指根据不同Web用户的权限为Web用户预先配置的、可动态调整的反向代理地址。可选地,定向代理模块还用于:创建servletRequest对象,在servletRequest对象中封装接收到的Http请求;解析servletRequest对象,获取Http请求的方式、参数;创建DefaultHttpClient对象实例,按照Http请求的方式、参数、头信息和对应的预设反向代理地址URL信息生成HttpRequest对象并发送至目标服务器;接收目标服务器返回的HttpResponse对象;解析HttpResponse对象,将从HttpResponse对象中获取的Http请求的响应结果和头信息赋值给servletResponse对象,以生成响应数据;把servletResponse对象中的响应数据回传给Web用户。为实现上述目的,根据本专利技术实施例的再一方面,提供了一种电子设备。本专利技术实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本专利技术实施例的实现Http反向代理的方法。为实现上述目的,根据本专利技术实施例的又一方面,提供了一种计算机可读介质。本专利技术实施例的一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本专利技术实施例的实现Http反向代理的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用通过Java实现Http反向代理功能的技术手段,所以克服了现有技术中无法根据业务需要自定义实现个性化判断和操作的技术问题,进而达到在支持基于Java的标准Web服务的同时,实现在反向代理之前自定义实现例如用户登录等个性化操作的技术效果;此外,通过根据用户权限动态配置反向代理地址,从而将用户请求反向代理到指定系统中;本专利技术实施例中的反向代理功能可以轻量级地集成到现有的Web系统中,从而可以简单灵活的通过Java实现包含个性化需求的反向代理服务,并且将基于Presto查询引擎、或者Hadoop平台、或者一些公司内部系统的Http请求反向代理至指定目标服务器;通过在反向代理之前验证用户权限,从而可以实现对反向代理地址访问权限的控制;通过在反向代理之前验证根据用户增加额外代理参数,从而可以根据不同业务需求实现不同的业务判断;通过根据不同Web用户的权限为Web用户预先配置的、可动态调整的反向代理地址,从而可以实现对每个用户访问的目标服务器的地址的控制;通过在反向代理容器中创建DefaultHttpClient对象实例,并调用参数实现对目标服务器的访问,从而能够高效的实现对不同用户请求的反向代理功能。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的实现Http反向代理的方法的主要流程的示意图;图2是根据本专利技术实施例的实现Http反向代理的方法中Http反向代理功能说明的示意图;图3是根据本专利技术实施例的实现Http反向代理的装置的主要模块的示意图;图4是本专利技术实施例可以应用于其中的示例性系统架构图;图5是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施本文档来自技高网...

【技术保护点】
1.一种实现Http反向代理的方法,其特征在于,包括:接收Web用户的Http请求;在验证所述Web用户的Http请求符合预设验证规则之后,查询所述Web用户对应的预设反向代理地址;根据所述预设反向代理地址将所述Web用户的Http请求反向代理至目标服务器。

【技术特征摘要】
1.一种实现Http反向代理的方法,其特征在于,包括:接收Web用户的Http请求;在验证所述Web用户的Http请求符合预设验证规则之后,查询所述Web用户对应的预设反向代理地址;根据所述预设反向代理地址将所述Web用户的Http请求反向代理至目标服务器。2.根据权利要求1所述的方法,其特征在于,所述Http请求为基于Presto查询引擎的请求和/或基于Hadoop的请求。3.根据权利要求1所述的方法,其特征在于,验证所述Web用户的Http请求符合预设验证规则包括:验证所述Web用户的访问权限符合预设权限规则;和/或根据业务需求验证所述Web用户的代理参数符合预设代理参数规则。4.根据权利要求1所述的方法,其特征在于,所述预设反向代理地址是指根据不同Web用户的权限为Web用户预先配置的、可动态调整的反向代理地址。5.根据权利要求1所述的方法,其特征在于,根据所述预设反向代理地址将所述Web用户的Http请求反向代理至目标服务器包括:创建servletRequest对象,在所述servletRequest对象中封装接收到的Http请求;解析servletRequest对象,获取所述Http请求的方式、参数;创建DefaultHttpClient对象实例,按照所述Http请求的方式、参数、头信息和对应的预设反向代理地址URL信息生成HttpRequest对象并发送至目标服务器;接收所述目标服务器返回的HttpResponse对象;解析所述HttpResponse对象,将从所述HttpResponse对象中获取的Http请求的响应结果和头信息赋值给servletResponse对象,以生成响应数据;把servletResponse对象中的响应数据回传给Web用户。6.一种实现Http反向代理的装置,其特征在于,包括:接收模块,用于接收Web用户的Http请求;验证模块,用于在验证所述Web用户的Ht...

【专利技术属性】
技术研发人员:吴晓春
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1