服务页面的访问方法及系统、代理服务器与流程

文档序号:11811791阅读:188来源:国知局
服务页面的访问方法及系统、代理服务器与流程

本发明涉及网络访问技术领域,尤其涉及一种服务页面的访问方法及系统、代理服务器。



背景技术:

自从2009年亚马逊Web服务(Amazon Web Services;AWS)发布Elastic MapReduce以来,利用云计算平台来提供Hadoop大数据处理服务成为趋势,业内提供类似服务的云计算产品有百度的天算平台,阿里云的E-MapReduce服务,金山云托管Hadoop服务等。Hadoop大数据处理服务的明显优势包括低成本、弹性可扩展、安全易用,用户可以在虚拟私有云(Virtual Private Cloud;VPC)构成的虚拟云端局域内部启动和管理集群,也就是在一个自定义的逻辑隔离网络里管理自己的集群,所有的集群服务器节点都是处于局域网环境,避免暴漏在公网上,只将有外部请求的服务器节点即Master节点设置公网IP,减小安全隐患。

Hadoop等大数据处理服务在对应的集群内部都有各自的Hadoop服务页面,Hadoop服务页面为用户掌握运行作业的状态以及日志信息,从而为用户提供了很方便的入口。用户访问VPC内部的集群中的Hadoop服务页面通常采用如下的两个方法:一种是登录到集群内部,通过文本形式的浏览器Lynx访问,这种访问方式的缺点是不能展示图片,而且可操作性也比较差;第二种方式是在用户本地服务器和集群的具有公网IP的服务器节点即Master节点之间建立安全外壳(Secure SHell;SSH)协议隧道(Tunnel),简称SSH Tunnel;然后直接从集群中获取Hadoop服务页面。其中建立SSH Tunnel的具体步骤如下:(1)命令行或者SSH Client创建到集群的Master节点的SSH Tunnel,并设定好本地未占用的端口作为源端口;(2)浏览器需要有SOCKS代理管理插件,根据浏览器类型可以选择FoxyProxy或者SwitchySharp;(3)修改插件配置使用第一步创建的SOCKS代理;(4)打开浏览器访问Hadoop服务页面。而且第二种方式相对于第一种方式,具有更明显的优势,使用也更广泛。

但是,现有技术的通过用户建立SSH Tunnel访问Hadoop服务页面的方式,要求用户具有一定的技术基础,且建立SSH Tunnel过程的配置非常复杂,导致访问Hadoop服务页面的过程也非常复杂。



技术实现要素:

本发明提供了一种服务页面的访问方法及系统、代理服务器,用于降低Hadoop服务页面访问的复杂性。

本发明提供一种服务页面的访问方法,所述方法包括:

接收前端设备发送的用户的Hadoop服务页面的获取请求;所述Hadoop服务页面的获取请求中携带要访问的所述Hadoop服务页面所在的集群的标识和服务类型的端口标识;

根据所述集群的标识和所述服务类型的端口标识,从对应的所述集群中获取所述Hadoop服务页面;

将所述Hadoop服务页面中的URL重写为能够进行外部访问的URL;

通过所述前端设备向所述用户的客户端发送重写URL后的所述Hadoop服务页面。

进一步可选地,如上所述的方法中,接收前端设备发送的用户的Hadoop服务页面的获取请求之后,根据所述集群的标识和所述服务类型的端口标识,从对应的所述集群中获取所述Hadoop服务页面之前,还包括:

根据所述集群的访问限制,对所述用户的身份进行认证;并确定所述用户身份认证通过。

进一步可选地,如上所述的方法中,根据所述集群的访问限制,对所述用户的身份进行认证,具体包括:

根据所述集群的访问限制,通过所述前端设备向所述用户的客户端发送身份请求信息;

通过所述前端设备接收所述用户的用户名和密码;

根据所述集群的标识,从集群数据库中获取所述集群的用户身份信息;

根据所述集群的用户身份信息对所述用户的用户和密码进行认证。

进一步可选地,如上所述的方法中,根据所述集群的标识和所述服务类型的端口标识,从对应的所述集群中获取所述Hadoop服务页面,具体包括:

根据所述集群的标识,从集群数据库中获取所述集群的地址;

根据所述集群的地址和所述服务类型的端口标识,向对应的所述集群发送所述Hadoop服务页面的获取请求;

接收所述集群根据所述Hadoop服务页面的获取请求返回的所述Hadoop服务页面。

进一步可选地,如上所述的方法中,将所述Hadoop服务页面中的URL重写为能够进行外部访问的URL,具体包括:

判断所述Hadoop服务页面的Content-Type是否包括JSON字符串;

若包括,判断所述Hadoop服务页面中是否包括预定义列表中的待重写的URL;

若包括,将所述Hadoop服务页面的所述待重写的URL的Host重写为代理服务器对外的域名、所述待重写的URL的Path中加上所述集群的标识以及所述服务类型的端口标识。

进一步可选地,如上所述的方法中,将所述Hadoop服务页面中的URL重写为能够进行外部访问的URL,具体包括:

判断所述Hadoop服务页面的Content-Type是否包括JavaScript或者CSS;

若包括,采用正则表达式匹配的方式获取所述Hadoop服务页面中待重写的URL重写后的URL表达式;

将代理服务器对外的域名写入所述URL表达式的Host位置、在所述URL表达式的Path中加上所述集群的标识以及所述服务类型的端口标识。

进一步可选地,如上所述的方法中,将所述Hadoop服务页面中的URL重写为能够进行外部访问的URL,具体包括:

判断所述Hadoop服务页面是否为HTML页面;

若是,获取所述Hadoop服务页面中包括有待重写的URL的标签;

将所述标签中的所述待重写的URL的Host重写为代理服务器对外的域名、所述待重写的URL的Path中加上所述集群的标识以及所述服务类型的端口标识。

本发明还提供一种代理服务器,所述代理服务器包括:

接收模块,用于接收前端设备发送的用户的Hadoop服务页面的获取请求;所述Hadoop服务页面的获取请求中携带要访问的所述Hadoop服务页面所在的集群的标识和服务类型的端口标识;

获取模块,用于根据所述集群的标识和所述服务类型的端口标识,从对应的所述集群中获取所述Hadoop服务页面;

URL重写模块,用于将所述Hadoop服务页面中的URL重写为能够进行外部访问的URL;

发送模块,用于通过所述前端设备向所述用户的客户端发送重写URL后的所述Hadoop服务页面。

进一步可选地,如上所述的代理服务器中,还包括:

身份认证模块,用于根据所述集群的访问限制,对所述用户的身份进行认证;并确定所述用户身份认证通过。

进一步可选地,如上所述的代理服务器中,所述身份认证模块,具体用于:

根据所述集群的访问限制,通过所述前端设备向所述用户的客户端发送身份请求信息;

通过所述前端设备接收所述用户的用户名和密码;

根据所述集群的标识,从集群数据库中获取所述集群的用户身份信息;

根据所述集群的用户身份信息对所述用户的用户和密码进行认证。

进一步可选地,如上所述的代理服务器中,所述获取模块,具体用于:

根据所述集群的标识,从所述集群数据库中获取所述集群的地址;

根据所述集群的地址和所述服务类型的端口标识,向对应的所述集群发送所述Hadoop服务页面的获取请求;

接收所述集群根据所述Hadoop服务页面的获取请求返回的所述Hadoop服务页面。

进一步可选地,如上所述的代理服务器中,所述URL重写模块,具体用于:

判断所述Hadoop服务页面的Content-Type是否包括JSON字符串;

若包括,判断所述Hadoop服务页面中是否包括预定义列表中的待重写的URL;

若包括,将所述Hadoop服务页面的所述待重写的URL的Host重写为代理服务器对外的域名、所述待重写的URL的Path中加上所述集群的标识以及所述服务类型的端口标识。

进一步可选地,如上所述的代理服务器中,所述URL重写模块,具体用于:

判断所述Hadoop服务页面的Content-Type是否包括JavaScript或者CSS;

若包括,采用正则表达式匹配的方式获取所述Hadoop服务页面中待重写的URL重写后的URL表达式;

将代理服务器对外的域名写入所述URL表达式的Host位置、在所述URL表达式的Path中加上所述集群的标识以及所述服务类型的端口标识。

进一步可选地,如上所述的代理服务器中,所述URL重写模块,具体用于:

判断所述Hadoop服务页面是否为HTML页面;

若是,获取所述Hadoop服务页面中包括有待重写的URL的标签;

将所述标签中的所述待重写的URL的Host重写为代理服务器对外的域名、所述待重写的URL的Path中加上所述集群的标识以及所述服务类型的端口标识。

本发明还提供一种服务页面的访问系统,所述系统包括前端设备和代理服务器,所述前端设备,与用户的客户端通信,用于接收所述用户通过所述客户端发送的Hadoop服务页面的获取请求;所述Hadoop服务页面的获取请求中携带要访问的所述Hadoop服务页面所在的集群的标识和服务类型的端口标识;并对所述Hadoop服务页面的获取请求进行解析,获取网站内部的所述代理服务器的地址,并根据所述代理服务器的地址,将所述Hadoop服务页面的获取请求转发至所述代理服务器;

所述代理服务器,与对应的所述集群通信,根据所述前端设备转发的所述用户的所述Hadoop服务页面的获取请求,获取所述Hadoop服务页面,并对所述Hadoop服务页面中的URL进行重写处理,并通过所述前端设备向所述用户的所述客户端发送重写URL后的所述Hadoop服务页面;所述代理服务器,具体采用如上所述的代理服务器。

本发明的服务页面的访问方法及系统、代理服务器,通过由代理服务器接收前端设备发送的用户的Hadoop服务页面的获取请求;根据Hadoop服务页面的获取请求中携带的集群的标识和服务类型的端口标识,从对应的集群中获取Hadoop服务页面;将Hadoop服务页面中的URL重写为能够进行外部访问的URL;通过前端设备向用户的客户端发送重写URL后的Hadoop服务页面。采用本发明的技术方案,用户可以通过前端设备和代理服务器获取Hadoop服务页面,与现有技术的通过建立SSH Tunnel访问Hadoop服务页面的方式相比,不需要用户有一定的技术基础,省去用户对建立SSH Tunnel过程的配置,大大地降低了访问Hadoop服务页面的复杂程度。而且本发明的技术方案,与现有的用户直接登录到集群内部,通过文本形式的浏览器Lynx访问Hadoop服务页面相比,用户访问的Hadoop服务页面可以展示图片,而且可操作性也比较强。

【附图说明】

图1为本发明的服务页面的访问方法实施例的流程图。

图2为本发明实施例提供的一种代理服务器返回用户的身份请求页面。

图3为本发明实施例提供一种用户的客户端显示的重写URL后的Hadoop服务页面。

图4为本发明的代理服务器实施例一的结构图。

图5为本发明的代理服务器实施例二的结构图。

图6为本发明的服务页面的访问系统实施例的结构图。

图7为本发明的服务页面的访问系统的示例图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

图1为本发明的服务页面的访问方法实施例的流程图。如图1所示,本实施例的服务页面的访问方法,具体可以包括如下步骤:

100、接收前端设备发送的用户的Hadoop服务页面的获取请求;

101、根据Hadoop服务页面的获取请求中携带的集群的标识和服务类型的端口标识,从对应的集群中获取Hadoop服务页面;

102、将Hadoop服务页面中的URL重写为能够进行外部访问的URL;

103、通过前端设备向用户的客户端发送重写URL后的Hadoop服务页面。

本实施例的服务页面的访问方法的执行主体为代理服务器。本实施例的代理服务器设置在网站的前端(Front End)设备与集群系统之间。本实施例的集群系统中可以包括多个集群(Cluster),本实施例中的集群具体为Hadoop集群。

由于Hadoop集群的Hadoop服务页面为用户掌握运行作业的状态以及日志信息,所以用户在实际操作中需要访问该Hadoop服务页面。本实施例的服务页面的访问方法即用于为用户提供Hadoop服务页面。例如,本实施例中的Hadoop服务页面具体可以为Yarn管理页面,或者Hue管理页面。

本实施例中,前端设备发送的用户的Hadoop服务页面的获取请求,具体可以为用户通过所使用的客户端发送至前端设备的。本实施例中的Hadoop服务页面的获取请求中携带要访问的Hadoop服务页面所在的集群的标识和服务类型的端口标识;例如集群的标识具体可以为该集群的通用唯一标识码(Universally Unique Identifier;UUID)。服务类型的端口标识可以为该服务类型的端口号。本实施例的Hadoop服务页面的获取请求具体可以为一个获取该Hadoop服务页面的统一资源定位符(Uniform Resoure Locator;URL)。如下用户的一个Hadoop服务页面的获取请求为如下URL:

https://bmr.bce.baidu.com/476308c-5d5b-11e6-83c4-00e0ec261caa/8088/cluster;

其中,bmr.bce.baidu.com用于定位代理服务器,前端设备接收到该请求之后,解析该URL,根据bmr.bce.baidu.com解析内部的代理服务器的IP地址,这样可以将该Hadoop服务页面的获取请求转发给代理服务器,从而使得代理服务器获取到其中的下述URL段:

f476308c-5d5b-11e6-83c4-00e0ec261caa/8088/Cluster。

其中476308c-5d5b-11e6-83c4-00e0ec261caa为集群的UUID,8088为服务类型的端口号;Cluster为集群的标识。

本实施例中,代理服务器等于设置在网站内部,可以与任意一集群中的任意服务器节点进行通讯,不管该服务器节点是普通节点还是Master节点。因此,本实施例中,代理服务器还可以根据Hadoop服务页面的获取请求中携带的集群的标识和服务类型的端口标识,与对应的集群中的任一服务器节点进行通讯,从集群的服务器节点中获取Hadoop服务页面。

具体地,本实施例的步骤101“根据Hadoop服务页面的获取请求中携带的集群的标识和服务类型的端口标识,从对应的集群中获取Hadoop服务页面”,具体可以包括如下步骤:

(a1)根据集群的标识,从集群数据库中获取集群的地址;

(a2)根据集群的地址和服务类型的端口标识,向对应的集群发送Hadoop服务页面的获取请求;

(a3)接收集群根据所述Hadoop服务页面的获取请求返回的Hadoop服务页面。

本实施例中,集群数据库设置在集群中,该集群数据库中存储有各个集群的所有信息,例如存储有每个集群的标识以及集群的地址的对应关系,如集群的标识具体可以为集群的UUID,集群的地址具体可以为集群的IP地址。即集群数据库中具体可以存储有集群的UUID和集群的IP地址之间的对应关系。这样,代理服务器可以根据集群的UUID,从集群数据库中获取该集群的IP地址。然后根据该集群的IP地址和服务类型的端口标识,向对应的集群中的服务器节点发送Hadoop服务页面的获取请求。该集群中的服务器节点根据该Hadoop服务页面的获取请求,获取对应的Hadoop服务页面,并向该代理服务器返回该Hadoop服务页面。

由于代理服务器接收集群返回的Hadoop服务页面是网站内部的Hadoop服务页面,该Hadoop服务页面的URL具体为内部的地址,由于用户为该网站的外部用户,如果直接将集群返回的该Hadoop服务页面发送给用户,用户也无法直接访问该Hadoop服务页面的URL。因此本实施例中需要将Hadoop服务页面中的URL重写为能够进行外部访问的URL;并通过前端设备向用户的客户端发送重写URL后的Hadoop服务页面。这样用户最终得到的Hadoop服务页面才是可以访问的有意义的服务页面。

本实施例的服务页面的访问方法,通过由代理服务器接收前端设备发送的用户的Hadoop服务页面的获取请求;根据Hadoop服务页面的获取请求中携带的集群的标识和服务类型的端口标识,从对应的集群中获取Hadoop服务页面;将Hadoop服务页面中的URL重写为能够进行外部访问的URL;通过前端设备向用户的客户端发送重写URL后的Hadoop服务页面。采用本实施例的技术方案,用户可以通过前端设备和代理服务器获取Hadoop服务页面,与现有技术的通过建立SSH Tunnel访问Hadoop服务页面的方式相比,不需要用户有一定的技术基础,省去用户对建立SSH Tunnel过程的配置,大大地降低了访问Hadoop服务页面的复杂程度。而且本实施例的技术方案,与现有的用户直接登录到集群内部,通过文本形式的浏览器Lynx访问Hadoop服务页面相比,用户访问的Hadoop服务页面可以展示图片,而且可操作性也比较强。

进一步可选地,在上述实施例的步骤100“接收前端设备发送的用户的Hadoop服务页面的获取请求”之后,步骤101“根据Hadoop服务页面的获取请求中携带的集群的标识和服务类型的端口标识,从对应的集群中获取Hadoop服务页面”之前,还可以包括如下:根据集群的访问限制,对用户的身份进行认证;并确定用户身份认证通过。

由于Hadoop集群内部会有一台服务器节点具备公网访问能力,直接开放该服务器节点的服务端口用户就可以访问,但是Hadoop原生的服务页面,例如Yarn管理页面,没有提供用户认证功能,如果直接开放,那么恶意用户会通过IP穷举等方式窃取到用户作业信息,这样会存在很大的安全隐患,所以现有技术中,VPC内部的Hadoop集群的Hadoop服务页面通常不能在用户客户端直接通过浏览器访问,只能通过用户登录到集群内部或者在本地创建SSH Tunnel的方式访问。为了增加Hadoop服务页面的安全性,本实施例的技术方案,还可以集群的访问限制,设置了对用户的身份进行认证,以增加Hadoop服务页面的安全性。例如代理服务器接收到前端设备发送的用户的Hadoop服务页面的获取请求之后,代理服务器在向集群请求对应的Hadoop服务页面的过程中,发现该集群设置有访问限制,需要对请求Hadoop服务页面的用户的身份进行认证,否则不提供Hadoop服务页面,只能当对该用户的身份验证通过,才可以向该用户提供Hadoop服务页面。用户在集群的用户名和密码是可以为用户之前通过直接登录该集群内部注册的。

进一步可选地,上述实施例的技术方案中的“根据集群的访问限制,对用户的身份进行认证”,具体可以包括如下步骤:

(b1)根据集群的访问限制,通过前端设备向用户的客户端发送身份请求信息;

(b2)通过前端设备接收用户的用户名和密码;

(b3)根据集群的标识,从集群数据库中获取集群的用户身份信息;

(b4)根据集群的用户身份信息对用户的用户和密码进行认证。

当代理服务器确定该集群具有访问限制,通过前端设备向用户的客户端发送身份请求信息;例如返回用户的可以为一个网页。例如,图2为本发明实施例提供的一种代理服务器返回用户的身份请求页面。如图2所示,该页面显示了代理服务器通过前端设备向用户的客户端发送的身份请求信息,即用户名和密码的输入框。用户通过在该输入框中输入用户名和密码,然后点击确定,便将用户的用户名和密码通过前端设备发送给代理服务器。本实施例的集群数据库用于存储各集群的用户身份信息,例如各个集群的所有用户的用户名和对应的密码。

代理服务器接收到前端设备发送的用户的用户名和密码之后,根据集群的标识如集群的UUID,从集群数据库中获取该集群的所有用户的身份信息,然后根据获取的该集群的所有用户的身份信息验证该用户的用户名和密码。即判断该集群的所有用户的身份信息中是否包括该用户名和对应的密码,如果集群的所有用户身份信息中没有该用户名或者该用户名对应的密码与用户输入的密码不一致,则对该用户身份验证不通过。只有当集群的所有用户身份信息中包括有该用户名,且该用户名对应的密码与用户输入的密码一致,才对该用户身份验证通过。

由上述可知,本实施例的代理服务器采用HTTPS+BA(Basic Authentication;基本身份认证)的方式保证只有通过认证的且对集群具有操作权限的用户请求才能被转发到对应的集群,认证的用户名和密码采用集群服务器实例登录的用户名和密码,服务域名和证书配置在前端(FrontEnd;FE)设备中。

代理服务器在从目的集群获得Hadoop服务页面之后不能直接返回给用户浏览器,需要对Hadoop服务页面进行解析,将其中所有URL进行处理,使得处理后的Hadoop服务页面中的URL用户能够访问。具体地,上述实施例的技术方案中,步骤102“将Hadoop服务页面中的URL重写为能够进行外部访问的URL”,具体可以包括如下几种情况:

第一种情况,Hadoop服务页面的Content-Type包括JSON字符串;具体可以包括如下步骤:

(c1)判断Hadoop服务页面的Content-Type是否包括JSON字符串;若包括,执行步骤(c2);若不包括,结束;

(c2)判断Hadoop服务页面中是否包括预定义列表中的待重写的URL;若包括,执行步骤(c3);若不包括,结束;

(c3)将Hadoop服务页面的待重写的URL的Host重写为代理服务器对外的域名、待重写的URL的Path中加上集群的标识以及服务类型的端口标识。

Hadoop服务页面中的URL重写的原理,即是将所有URL的Host要替换为代理服务器对外的域名,Path中要加上标识集群的UUID以及服务类型的端口。如下述表1所示为一种重写示例。

表1

如表1所示,本实施例在做Hadoop服务页面中的URL重写时,可以将http://8.8.8.8:8888/Cluster会被替换成https://bmr.bce.baidu.com/f476308c-5d5b-11e6-83c4-00e0ec261caa/8888/Cluster;这样用户端的浏览器可以继续访问重写后的URL。代理服务器会收到请求,并且根据f476308c-5d5b-11e6-83c4-00e0ec261caa查到集群地址8.8.8.8,再将请求转发到集群的目的服务器节点。

代理服务器需要对Hadoop服务页面解析获取所有需要重写的URL,根据页面Content Type的不同,采用不同的方式,本实施例中以页面Content-Type包含JSON字符串为例。

具体地,判断Hadoop服务页面的Content-Type是否包括JSON字符串;若包括;针对JSON页面,会预定义一个预定义列表如preDefinedList,这个preDefinedList中包含了要重写的URL的前缀,由于代理服务器主要是代理的Hadoop相关的服务页面,所以这个preDefinedList是可以列举的,这样直接将preDefinedList列表中的字段串进行重写即可,具体重写的原则为将Hadoop服务页面的待重写的URL的Host重写为代理服务器对外的域名、待重写的URL的Path中加上集群的标识以及服务类型的端口标识。

第二种情况,Hadoop服务页面的Content-Type包括JavaScript或者CSS;具体可以包括如下步骤:

(d1)判断Hadoop服务页面的Content-Type是否包括JavaScript或者CSS;若包括,执行步骤(d2);若不包括,结束;

(d2)采用正则表达式匹配的方式获取Hadoop服务页面中待重写的URL重写后的URL表达式;

(d3)将代理服务器对外的域名写入URL表达式的Host位置、在URL表达式的Path中加上集群的标识以及服务类型的端口标识。

与上述第一种情况不同的是,在该第二种情况中,以Hadoop服务页面的Content-Type包含JavaScript或者CSS为例。具体地,判断Hadoop服务页面的Content-Type是否包括JavaScript或者CSS;若包括JavaScript或者CSS,JavaScript类型页面中的URL通常是固定模式的代码形式,此时可采用正则表达式匹配的方式进行处理。例如格式"url\\s*\\(\\s*(?:[\"'](?P<link>[^\"']*)[\"']|(?P<link>\\S+))"将会匹配到代码URL("http://8.8.8.8:8888/Cluster"),进而可以得到其中待重写的URL;然后按照将代理服务器对外的域名写入URL表达式的Host位置、在URL表达式的Path中加上集群的标识以及服务类型的端口标识,对URL进行重写。也就是说每一种类型的URL都对会匹配到一种正则表达式表达的URL表达式。然后按照这种表达式,按照URL的重写原理将其中待重写的URL重写即可。

同时为了避免所有Hadoop服务页面都要对所有的正则表达式进行遍历处理,在实现上可以将正则表达式根据请求文件的关键字做分类,不同的文件只需要遍历页面中会用到的正则表达式列表;

第三种情况,HTML页面的处理;具体可以包括如下步骤:

(e1)判断Hadoop服务页面是否为HTML页面;若是,执行步骤(e2);若不包括,结束;

(e2)获取Hadoop服务页面中包括有待重写的URL的标签;

(e3)将标签中的待重写的URL的Host重写为代理服务器对外的域名、待重写的URL的Path中加上集群的标识以及服务类型的端口标识。

若Hadoop服务页面中的Content Type含有excludedList中的关键字,excludedList中的关键字有csv,image,stream,xml,xsl等,这些类型的页面不用做处理。之外的其他类型的页面都作为HTML页面进行处理,HTML页面中特定的标签,例如a,src等会包含URL,本实施例中将所有包括URL的标签都作为可能待重写的URL的标签。即列出所有可能包含URL的标签,然后解析出Hadoop服务页面中的这些标签的内容,将标签中的待重写的URL的Host重写为代理服务器对外的域名、待重写的URL的Path中加上集群的标识以及服务类型的端口标识。HTML页面中还有一种script元素,这种元素内容获取到以后可以跟JavaScript页面采用同样的正则处理方式进行处理,即上述第二种情况的处理。

采用上述任意一种方式将Hadoop服务页面中的URL重写为能够进行外部访问的URL之后,可以根据步骤103,通过前端设备向用户的客户端发送重写URL后的Hadoop服务页面。例如图3为本发明实施例提供一种用户的客户端显示的重写URL后的Hadoop服务页面。这样用户可以直接根据该重写URL后的Hadoop服务页面访问重写后的URL。

图4为本发明的代理服务器实施例一的结构图。如图4所示,本实施例的代理服务器,具体可以包括:接收模块10、获取模块11、URL重写模块12和发送模块13。

其中接收模块10用于接收前端设备发送的用户的Hadoop服务页面的获取请求;Hadoop服务页面的获取请求中携带要访问的Hadoop服务页面所在的集群的标识和服务类型的端口标识;获取模块11用于根据接收模块10接收的Hadoop服务页面的获取请求中的集群的标识和服务类型的端口标识,从对应的集群中获取Hadoop服务页面;URL重写模块12用于将获取模块11获取的Hadoop服务页面中的URL重写为能够进行外部访问的URL;发送模块13用于通过前端设备向用户的客户端发送URL重写模块12重写URL后的Hadoop服务页面。

本实施例的代理服务器,通过采用上述模块实现服务页面的访问的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

图5为本发明的代理服务器实施例二的结构图。本实施例的代理服务器在上述图4所示实施例的技术方案的基础上,进一步还可以包括如下技术方案。如图5所示,本实施例的代理服务器还包括:身份认证模块14。

身份认证模块14用于根据集群的访问限制,对用户的身份进行认证;并确定用户身份认证通过。在接收模块10接收前端设备发送的用户的Hadoop服务页面的获取请求之后,触发身份认证模块14对用户的身份进行认证。只能当身份认证模块14对用户的身份认证通过之后,才会触发获取模块11根据接收模块10接收的Hadoop服务页面的获取请求中的集群的标识和服务类型的端口标识,从对应的集群中获取Hadoop服务页面。

进一步可选地,本实施例的代理服务器中,身份认证模块14体用于:

根据集群的访问限制,通过前端设备向用户的客户端发送身份请求信息;

通过前端设备接收用户的用户名和密码;

根据集群的标识,从集群数据库中获取集群的用户身份信息;

根据集群的用户身份信息对用户的用户和密码进行认证。

进一步可选地,本实施例的代理服务器中,获取模块11具体用于:

根据集群的标识,从集群数据库中获取集群的地址;

根据集群的地址和服务类型的端口标识,向对应的集群发送Hadoop服务页面的获取请求;

接收集群根据Hadoop服务页面的获取请求返回的Hadoop服务页面。

进一步可选地,本实施例的代理服务器中,URL重写模块12具体用于:

判断Hadoop服务页面的Content-Type是否包括JSON字符串;

若包括,判断Hadoop服务页面中是否包括预定义列表中的待重写的URL;

若包括,将Hadoop服务页面的待重写的URL的Host重写为代理服务器对外的域名、待重写的URL的Path中加上集群的标识以及服务类型的端口标识。

进一步可选地,本实施例的代理服务器中,URL重写模块12具体用于:

判断Hadoop服务页面的Content-Type是否包括JavaScript或者CSS;

若包括,采用正则表达式匹配的方式获取Hadoop服务页面中待重写的URL重写后的URL表达式;

将代理服务器对外的域名写入URL表达式的Host位置、在URL表达式的Path中加上集群的标识以及服务类型的端口标识。

进一步可选地,本实施例的代理服务器中,URL重写模块12具体用于:

判断Hadoop服务页面是否为HTML页面;

若是,获取Hadoop服务页面中包括有待重写的URL的标签;

将标签中的待重写的URL的Host重写为代理服务器对外的域名、待重写的URL的Path中加上集群的标识以及服务类型的端口标识。

本实施例的代理服务器,通过采用上述模块实现服务页面的访问的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

图6为本发明的服务页面的访问系统实施例的结构图。如图6所示,本实施例的服务页面的访问系统,具体可以包括:前端设备20和代理服务器30。

其中前端设备20与用户的客户端通信,用于接收用户通过客户端发送的Hadoop服务页面的获取请求;Hadoop服务页面的获取请求中携带要访问的Hadoop服务页面所在的集群的标识和服务类型的端口标识;并对Hadoop服务页面的获取请求进行解析,获取网站内部的代理服务器30的地址,并根据代理服务器30的地址,将Hadoop服务页面的获取请求转发至代理服务器30;

代理服务器30与对应的集群通信,根据前端设备20转发的用户的Hadoop服务页面的获取请求,获取Hadoop服务页面,并对Hadoop服务页面中的URL进行重写处理,并通过前端设备20向用户的客户端发送重写URL后的Hadoop服务页面;具体地,本实施例的代理服务器30具体采用如上图4或者图5所示实施例的代理服务器。并且,本实施例的服务页面的访问系统,可以采用上述相关方法实施例实现服务页面的访问,详细可以参考上述相关实施例的记载,在此不再赘述。

图7为本发明的服务页面的访问系统的示例图。在上述图6所示实施例的技术方案的基础上,本实施例中提供一种服务页面访问系统的架构,如图7所示,本实施例中,该架构可以同时支持多个User,例如图7中以包括User A31、User B32和User C33为例,以包括三个集群Cluster A41、Cluster B42和Cluster C43为例。其中User A31访问Cluster A41的服务页面、User B32访问Cluster B42的服务页面、User C33访问Cluster C43的服务页面。根据上述实施例的记载,其中前端设备FE设备50与各User的客户端通信,接收各User的客户端发送的Hadoop服务页面的获取请求,并向各User的客户端发送重写URL后的Hadoop服务页面。本实施例中代理服务器采用Proxy模块60来表示。Proxy模块60位于前端设备FE设备50和集群Cluster A41、Cluster B42和Cluster C43之间,可以为多个用户的多个集群内的服务提供代理,用户可以直接通过链接的形式访问Hadoop服务页面,通过基本验证之后就可以访问到Hadoop集群的Hadoop服务页面。本实施例的代理服务器Proxy模块60负责实现用户的认证,URL的重写,保证请求都能到达代理服务器,以及如何支持同一个用户的不同集群。

需要说明的是,本实施例的架构中是以包括三个User和三个Cluster为例,实际应用中,User的数量和Cluster的数量并不做限制。

需要说明的是,本实施例中,一个用户如果访问多个集群,且通过同一个浏览器访问不同集群相同的服务时候,会出现session冲突的问题,用户只要在集群之间进行切换就需要重新认证,因为被处理后的不同集群的服务URL具备相同的域名,Cookie支持Path级别的认证,可以通过Cookie Path的重写来消除冲突。本实施例中,图7所示的服务页面的访问系统架构中的Proxy模块60的功能实现具体可以参考上述图4或者图5所示实施例的代理服务器。图7所示的服务页面的访问系统架构中的FE设备50和Proxy模块60构成图6所示的服务页面的访问系统,详细可以参考上述图6所示实施例的服务页面的访问系统。且图7所示的服务页面的访问系统架构中各组件之间相互交互实现服务页面的访问可以参考上述相关方法实施例的记载,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1