首页 / 专利库 / 软件 / 用户友好界面 / 一种基于Node.js的反向代理服务器及反向代理方法

一种基于Node.js的反向代理服务器及反向代理方法

阅读:696发布:2020-05-08

专利汇可以提供一种基于Node.js的反向代理服务器及反向代理方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于Node.js的反向代理 服务器 ,包括交互单元、反向代理单元、缓存单元、用户管理单元和调试单元,维护人员通过用户管理单元获得权限,通过调试单元和交互单元进行分布式存储的配置项 可视化 配置,从而实现反向代理单元的反向代理,反向代理单元通过缓存单元缩短响应时间。与 现有技术 相比,反向代理服务器基于Node.js开发,对前端开发工程师而言非常友好,配置文件分布式存储,支持改动的追溯和备份,采用全功能的Web配置界面并支持远程操作,可更安全、更方便、更快捷地实现反向代理功能。,下面是一种基于Node.js的反向代理服务器及反向代理方法专利的具体信息内容。

1.一种基于Node.js的反向代理服务器,其特征在于,包括
交互单元:用于可视化配置分布式存储的配置项;
反向代理单元:用于接收服务端发送的HTTP服务请求,并返回HTTP服务请求的数据至服务端;
缓存单元:用于缓存客户端的数据;
用户管理单元:具有多种权限模式,保护分布式存储的配置项安全;
调试单元:用于远程或现场的dev调试;
通过用户管理单元获得权限,并通过调试单元和交互单元进行分布式存储的配置项配置,从而实现反向代理单元的反向代理,反向代理单元通过缓存单元缩短响应时间。
2.根据权利要求1所述的一种基于Node.js的反向代理服务器,其特征在于,所述的交互单元包括文件选择器和代码浏览器,所述的文件选择器用于可视化选择文件和目录,所述的代码浏览器用于实时浏览代码。
3.根据权利要求1所述的一种基于Node.js的反向代理服务器,其特征在于,所述的反向代理单元包括负载均衡子单元,所述的负载均衡子单元基于客户端性能分配权重。
4.根据权利要求1所述的一种基于Node.js的反向代理服务器,其特征在于,所述的反向代理单元包括身份验证子单元,所述的身份验证子单元用于验证服务端身份。
5.根据权利要求1所述的一种基于Node.js的反向代理服务器,其特征在于,修改配置项后,新的配置项立即生效,无需重启。
6.一种基于权利要求1-5任一所述的反向代理服务器的基于Node.js的反向代理方法,其特征在于,该方法包括:
步骤S1:反向代理服务器接收服务端的HTTP服务请求;
步骤S2:判断该HTTP服务请求是否命中身份认证规则,若是,执行步骤S3,若否,执行步骤S4;
步骤S3:判断服务端是否已登录,若否,重定向至登录页,若是,执行步骤S4;
步骤S4:判断该HTTP服务请求是否命中缓存规则,若是且缓存中有HTTP服务请求的数据,将缓存中的HTTP服务请求的数据返回至服务端,结束,其余情况执行步骤S5;
步骤S5:判断该HTTP服务请求是否命中路由规则,若否,返回404至服务端,结束,若是,执行步骤S6;
步骤S6:判断路由规则的处理方式,通过不同的处理方式返回HTTP服务请求的数据至服务端。
7.根据权利要求6所述的一种基于Node.js的反向代理方法,其特征在于,所述的处理方式包括URL重写、静态文件处理、代理转发和自定义响应。
8.根据权利要求7所述的一种基于Node.js的反向代理方法,其特征在于,若处理方式为URL重写,返回重写后的URL和301至服务端,结束;
若处理方式为静态文件处理,从磁盘查找该HTTP服务请求的数据,若存在,返回从磁盘查找到的数据至服务端,若不存在但启用了try_files配置项,且磁盘的根目录下存在index文件,返回从磁盘查找到的数据至服务端,其余情况返回404至服务端,结束;
若处理方式为代理转发,按照负载均衡算法将该HTTP服务请求转发至一个客户端,若响应超时,返回500至服务端,若成功接收客户端返回的数据,将客户端返回的数据根据需要进行缓存,返回客户端返回的数据至服务端,结束;
若处理方式为自定义响应,返回自定义的内容和响应头,结束。

说明书全文

一种基于Node.js的反向代理服务器及反向代理方法

技术领域

[0001] 本发明涉及HTTP服务器和反向代理服务器领域,尤其是涉及一种基于Node.js的反向代理服务器及反向代理方法。

背景技术

[0002] 反向代理服务器区别于正向代理服务器,是外部网络的服务端请求内部网络的客户端时需要使用的代理服务器,其过程为服务端发起服务请求至反向代理服务器,反向代理服务器将服务请求发送至客户端,进而将客户端返回的数据发送至服务端。
[0003] 目前,业内已存在的较流行的HTTP反向代理服务器包括Nginx、HAProxy等。
[0004] 诸如Nginx、HAProxy等最流行的HTTP反向代理服务器,运行、维护、路由规则的配置等,通常只能在终端(Terminal)中键入命令进行执行,需要熟悉Linux命令和该服务器的特定指令,学习成本较高,对于新手并不友好;同时相关的配置也是通过纯文本方式(如data.conf文件)进行保存,默认情况下也难以追溯改动和自动备份;由于历史原因,这些服务器几乎都是基于C语言开发,对于大量不熟悉C语言的开发工程师来说,很难进行维护和二次开发工作。

发明内容

[0005] 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于Node.js的反向代理服务器及反向代理方法。
[0006] 本发明的目的可以通过以下技术方案来实现:
[0007] 一种基于Node.js的反向代理服务器,包括
[0008] 交互单元:用于可视化配置分布式存储的配置项;
[0009] 反向代理单元:用于接收服务端发送的HTTP服务请求,并返回HTTP服务请求的数据至服务端;
[0010] 缓存单元:用于缓存客户端的数据;
[0011] 用户管理单元:具有多种权限模式,保护分布式存储的配置项安全;
[0012] 调试单元:用于远程或现场的dev调试;
[0013] 通过用户管理单元获得权限,并通过调试单元和交互单元进行分布式存储的配置项配置,从而实现反向代理单元的反向代理,反向代理单元通过缓存单元缩短响应时间。
[0014] 所述的交互单元包括文件选择器和代码浏览器,所述的文件选择器用于可视化选择文件和目录,所述的代码浏览器用于实时浏览代码。
[0015] 所述的反向代理单元包括负载均衡子单元,所述的负载均衡子单元基于客户端性能分配权重。
[0016] 所述的反向代理单元包括身份验证子单元,所述的身份验证子单元用于验证服务端身份。
[0017] 修改配置项后,新的配置项立即生效,无需重启。
[0018] 一种基于所述的反向代理服务器的基于Node.js的反向代理方法,该方法包括:
[0019] 步骤S1:反向代理服务器接收服务端的HTTP服务请求;
[0020] 步骤S2:判断该HTTP服务请求是否命中身份认证规则,若是,执行步骤S3,若否,执行步骤S4;
[0021] 步骤S3:判断服务端是否已登录,若否,重定向至登录页,若是,执行步骤S4;
[0022] 步骤S4:判断该HTTP服务请求是否命中缓存规则,若是且缓存中有HTTP服务请求的数据,将缓存中的HTTP服务请求的数据返回至服务端,结束,其余情况执行步骤S5;
[0023] 步骤S5:判断该HTTP服务请求是否命中路由规则,若否,返回404至服务端,结束,若是,执行步骤S6;
[0024] 步骤S6:判断路由规则的处理方式,通过不同的处理方式返回HTTP服务请求的数据至服务端。
[0025] 所述的处理方式包括URL重写、静态文件处理、代理转发和自定义响应。
[0026] 若处理方式为URL重写,返回重写后的URL和301至服务端,结束;
[0027] 若处理方式为静态文件处理,从磁盘查找该HTTP服务请求的数据,若存在,返回从磁盘查找到的数据至服务端,若不存在但启用了try_files配置项,且磁盘的根目录下存在index文件,返回从磁盘查找到的数据至服务端,其余情况返回404至服务端,结束;
[0028] 若处理方式为代理转发,按照负载均衡算法将该HTTP服务请求转发至一个客户端,若响应超时,返回500至服务端,若成功接收客户端返回的数据,将客户端返回的数据根据需要进行缓存,返回客户端返回的数据至服务端,结束;
[0029] 若处理方式为自定义响应,返回自定义的内容和响应头,结束。
[0030] 与现有技术相比,本发明具有以下优点:
[0031] (1)反向代理服务器基于Node.js开发,对前端开发工程师而言非常友好,因为都是基于JavaScript语言,易于理解和继续拓展功能;配置文件也不再保存于服务器本地的文本文件中,而是通过分布式存储在数据库,支持改动的追溯和备份。
[0032] (2)反向代理服务器设有交互单元、反向代理单元、缓存单元、用户管理单元和调试单元,抛弃传统的命令行方式配置配置项,交互单元采用全功能的Web配置界面,美观、优雅、现代化的UI设计,几乎所有配置项都可通过可视化配置,并支持远程操作,可更安全、更方便、更快捷地实现反向代理功能。
[0033] (3)交互单元包括文件选择器和代码浏览器,可以分层次更清晰地查看文件和目录,并可查看代码,方便维护人员理解。
[0034] (4)反向代理单元包括负载均衡子单元,负载均衡子单元基于客户端性能分配权重,可以选择最优的客户端提供数据,从而提高反向代理的能
[0035] (5)内置缓存单元,支持从缓存中直接返回响应内容,毫秒级访问体验。
[0036] (6)内置身份验证子单元,可避免无权限的服务端获取数据。
[0037] (7)内置用户管理单元:具有多种权限模式,可设置只读及可写权限,保护分布式存储的配置项安全。
[0038] (8)修改配置项后会及时生效,无需重启,避免重启时造成的无法使用问题。
[0039] (9)支持自定义响应,与交互单元结合,可以无需推送文件而上线新功能,极大优化了软件发布流程。附图说明
[0040] 图1为本发明反向代理服务器的结构示意图;
[0041] 图2为本发明反向代理方法的流程图

具体实施方式

[0042] 下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0043] 实施例
[0044] 本实施例提供一种基于Node.js的反向代理服务器,如图1所示,包括交互单元:用于可视化配置分布式存储的配置项;反向代理单元:用于接收服务端发送的HTTP服务请求,并返回HTTP服务请求的数据至服务端;缓存单元:用于缓存客户端的数据;用户管理单元:具有多种权限模式,保护分布式存储的配置项安全;调试单元:用于远程或现场的dev调试;
通过用户管理单元获得权限,并通过调试单元和交互单元进行分布式存储的配置项配置,从而实现反向代理单元的反向代理,反向代理单元通过缓存单元缩短响应时间。反向代理服务器基于Node.js开发,对前端开发工程师而言非常友好,因为都是基于JavaScript语言,易于理解和继续拓展功能;配置文件也不再保存于服务器本地的文本文件中,而是通过分布式存储在数据库,支持改动的追溯和备份;抛弃传统的命令行方式配置配置项,采用全功能的Web配置界面,美观、优雅、现代化的UI设计,几乎所有配置项都可通过可视化配置,并支持远程操作,可更安全、更方便、更快捷地实现反向代理功能。
[0045] 优选地,交互单元包括文件选择器和代码浏览器,文件选择器用于可视化选择文件和目录,代码浏览器用于实时浏览代码,可以分层次更清晰地查看文件和目录,并可查看代码,方便维护人员理解。
[0046] 优选地,反向代理单元包括负载均衡子单元,所述的负载均衡子单元基于客户端性能分配权重,可以选择最优的客户端提供数据,从而提高反向代理的能力。
[0047] 优选地,反向代理单元包括身份验证子单元,身份验证子单元用于验证服务端身份,可避免无权限的服务端获取数据。
[0048] 优选地,修改配置项后,新的配置项立即生效,无需重启,避免重启时造成的无法使用问题。
[0049] 本实施例还提供一种基于前述反向代理服务器的基于Node.js的反向代理方法,下面详述一个HTTP服务请求发送到反向代理服务器后的反向代理服务器处理流程,如图2所示:
[0050] 首先判断该服务请求是否命中了身份认证规则,即该服务请求是否必须登录后才能访问,如果必须登录且未登录,则反向代理服务器自动重定向至登录页,以供登录,否则往下执行。
[0051] 接着判断该服务请求是否命中了缓存规则,即该服务请求是否要继续后续的处理流程(如重定向、代理转发、返回静态页面等),如果命中了缓存规则,且缓存中确实有其数据,则立即将缓存中的数据作为响应(Response)返回给服务端(通常是浏览器),流程结束,否则往下执行。
[0052] 接着判断该服务请求是否命中了路由规则,如果没有找到任何匹配的路由,则说明该服务请求不是预料中的服务请求,直接返回404(Not Found)至服务端,流程结束,否则往下执行。
[0053] 此时判断该服务请求能够找到匹配的路由规则,路由规则支持4种处理方式:1.URL重写,2.静态文件处理,3.代理转发,4.自定义响应,依据路由规则中的配置选择其一进行处理。
[0054] 如果处理方式是URL重写,则将重写后的URL作为响应头的Location,然后返回301(Redirect)至服务端,流程结束。
[0055] 如果处理方式是静态文件处理,根据文件的路径,去磁盘尝试查找该文件,如果文件存在,则返回文件内容至服务端,并在返回的响应头中设置恰当的文件类型,流程结束;如果文件不存在,但启用了try_files配置,且磁盘根目录下存在index文件,则同样返回该文件内容至服务端;其它情况返回404,流程结束。
[0056] 如果处理方式是代理转发,则从所配置的反向代理服务器列表,按照负载均衡算法将服务请求转发至其中一个客户端,此时反向代理服务器处于等待响应阶段,如果响应超时,则返回500(Internal Server Error)至服务端,流程结束。如果成功接收到了响应,接着判断是否需要设置服务端缓存,如果需要则将客户端的响应数据进行缓存,最后将客户端的响应数据返至服务端,流程结束。
[0057] 如果处理方式是自定义响应,则直接返回自定义的内容和响应头至服务端,流程结束。
[0058] 本实施例还具有以下优点:
[0059] 支持自定义响应,结合UI界面,可以无需推送文件而上线新功能,极大优化了软件发布流程;一般的页面上线流程,是通过提交和推送代码文件到代码托管服务器,再由代码托管服务器推送到生产环境的Web服务器(通常会限定在固定的时间,比如每周的周一晚上),再重启服务器使得新页面生效,而基于本实施例的反向代理服务器,可通过UI界面进行配置,得到自定义响应和可视页面,即可实时发布新的页面。
[0060] 内置缓存单元,支持从缓存中直接返回响应内容,毫秒级访问体验。
[0061] 内置用户管理单元:具有多种权限模式,可设置只读及可写权限,保护分布式存储的配置项安全。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈