基于Nginx+Lua的数据处理方法及设备技术

技术编号:29525940 阅读:16 留言:0更新日期:2021-08-03 15:12
本发明专利技术实施例公开了一种基于Nginx+Lua的数据处理方法及设备。方法包括:采用Nginx服务器根据预设规则绑定域名和后端应用,建立域名和后端应用的对应关系;设置Nginx服务器所在系统的系统变量;启动所述Nginx服务器以加载系统变量;采用ngx_lua模块解析系统变量得到变量值,并设置系统变量对应的lua全局变量;接收用户请求,读取变量值,封装后端应用的Upstream名称;根据对应关系将Upstream名称转发到后端应用。实施本发明专利技术实施例,Nginx配置适配多数据中心多环境多版本,真正实现了一份Nginx兼容所有数据中心、环境、版本的复杂配置代理的场景,并保证环境的一致性。

【技术实现步骤摘要】
基于Nginx+Lua的数据处理方法及设备
本专利技术涉及计算机
,具体涉及一种基于Nginx+Lua的数据处理方法及设备。
技术介绍
之前,企业对外提供的WEB(Nginx)服务器是通过手工配置后才能进行代理访问。但随着业务访问量的直线增长,Nginx服务器也从原来单数据中心部署演变为多数据中心部署。由于多数据中心多环境的配置都是独立配置,从而导致环境差异性、配置不可移植、操作繁琐且容易出错、维护成本高。
技术实现思路
针对现有技术中的技术缺陷,本专利技术实施例的目的在于提供一种基于Nginx+Lua的数据处理方法及设备。为实现上述目的,第一方面,本专利技术实施例提供了一种基于Nginx+Lua的数据处理方法,包括:采用所述Nginx服务器根据预设规则绑定域名和后端应用,建立域名和后端应用的对应关系;设置Nginx服务器所在系统的系统变量;启动所述Nginx服务器以加载所述系统变量;采用ngx_lua模块解析所述系统变量得到变量值,并设置所述系统变量对应的lua全局变量;接收用户请求,根据所述用户请求采用所述Nginx服务器读取所述变量值,并根据所述变量值封装后端应用的Upstream名称;根据所述对应关系将所述Upstream名称转发到后端应用。其中,所述系统变量包括数据中心变量、环境变量和版本变量;Upstream名称的命名规范为:应用名+数据中心+环境+版本。第二方面,本专利技术实施例提供了一种基于Nginx+Lua的数据处理设备,包括设置单元和请求单元;所述设置单元用于:采用所述Nginx服务器根据预设规则绑定域名和后端应用,建立域名和后端应用的对应关系;设置Nginx服务器所在系统的系统变量;启动所述Nginx服务器以加载所述系统变量;采用ngx_lua模块解析所述系统变量得到变量值,并设置所述系统变量对应的lua全局变量;所述请求单元用于:接收用户请求,根据所述用户请求采用所述Nginx服务器读取所述变量值,并根据所述变量值封装后端应用的Upstream名称;根据所述对应关系将所述Upstream名称转发到后端应用。第三方面,本专利技术实施例提供了另一种基于Nginx+Lua的数据处理设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。实施本专利技术实施例,绑定了域名和后端应用的对应关系,设置了Nginx服务器所在系统的系统变量,当用户访问Nginx代理服务器时,ngx_lua模块会自动识别域名关联的应用,并根据系统变量的值自动访问后端应用的Upstream,大大降低了Nginx的冗余配置。即,Nginx配置适配多数据中心多环境多版本,真正实现了一份Nginx兼容所有数据中心、环境、版本的复杂配置代理的场景,并保证环境的一致性。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。图1是本专利技术实施例提供的基于Nginx+Lua的数据处理方法的流程图;图2是本专利技术第一实施例提供的数据处理设备的结构图;图3是本专利技术第二实施例提供的数据处理设备的结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为更好地理解本专利技术实施例,先对所涉及的相关
技术实现思路
进行如下描述:Nginx(enginex)是一款开源的Web服务器软件,其具有性能稳定、高并发、低内存耗用、高性能的处理能力等特点。ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,采用lua脚本实现业务逻辑。由于lua的紧凑、快速以及内建协程,所以在保证高并发服务能力的同时极大地降低了业务逻辑实现成本。请参考图1,本专利技术实施例提供的基于Nginx+Lua的数据处理方法,主要包括如下步骤:S101,采用Nginx服务器根据预设规则绑定域名和后端应用,建立域名和后端应用的对应关系。具体地,在Nginx配置中,将域名与后端应用进行关联,应用名变量暂定$target,大致操作如下:(1)监听域:名server_namewww.zbj.com(2)关联应用:set$target"www";proxy_passhttp://$target;通过上述两步便实现了域名与应用的绑定。S102,设置Nginx服务器所在系统的系统变量。具体地,定义“数据中心”、“环境”、“版本”三个环境系统变量,变量名暂定为:DC、DC_ENV、DC_VER·DC表示这台系统所在的(北京廊坊、天津华苑)数据中心;·DC_ENV表示这台系统所处的(开发、测试、预发布、生产等)环境;·DC_VER表示这台系统代理的应用版本(默认为latest)。S103,制定应用关联Upstream的命名规范。在本实施例中,以“应用名+数据中心+环境+版本”进行命名。·Upstream:www_bjlf_test_latest表示应用“www”运行在北京廊坊测试环境的最新版本;·Upstream:www_bjlf_prod_latest表示应用“www”运行在北京廊坊生产环境的最新版本;·Upstream:www_bjlf_prod_v2表示应用“www”运行在北京廊坊测试环境的v2版本。采用上述方式命名,可以使得Nginx服务器可以适配多数据中心多环境版本。S104,启动Nginx服务器以加载系统变量。S105,采用ngx_lua模块解析系统变量得到变量值,并设置系统变量对应的lua全局变量。具体地,配置nginx.conf,加载“DC”、“DC_ENV”、“DC_VER”系统变量,定义加载Lua代码路径,例如:当nginx启动时,init_by_lua_file阶段会将DC、DC_ENV、DC_VER加载到Lua内存中,相关程序代码如下:S106,接收用户请求,根据所述用户请求采用所述Nginx服务器读取所述变量值,并根据所述变量值封装后端应用的Upstream名称。S107,根据所述对应关系将所述Upstream名称转发到后端应用。具体地,用户请求www.zbj.com的时候,执行rewrite_by_lua_file阶段将根据target、DC、DC_ENV、DC_VER封装应用的Upstream名称,这本文档来自技高网
...

【技术保护点】
1.一种基于Nginx+Lua的数据处理方法,其特征在于,包括:/n采用Nginx服务器根据预设规则绑定域名和后端应用,建立域名和后端应用的对应关系;/n设置Nginx服务器所在系统的系统变量;/n启动所述Nginx服务器以加载所述系统变量;/n采用ngx_lua模块解析所述系统变量得到变量值,并设置所述系统变量对应的lua全局变量;/n接收用户请求,根据所述用户请求采用所述Nginx服务器读取所述变量值,并根据所述变量值封装后端应用的Upstream名称;/n根据所述对应关系将所述Upstream名称转发到后端应用。/n

【技术特征摘要】
1.一种基于Nginx+Lua的数据处理方法,其特征在于,包括:
采用Nginx服务器根据预设规则绑定域名和后端应用,建立域名和后端应用的对应关系;
设置Nginx服务器所在系统的系统变量;
启动所述Nginx服务器以加载所述系统变量;
采用ngx_lua模块解析所述系统变量得到变量值,并设置所述系统变量对应的lua全局变量;
接收用户请求,根据所述用户请求采用所述Nginx服务器读取所述变量值,并根据所述变量值封装后端应用的Upstream名称;
根据所述对应关系将所述Upstream名称转发到后端应用。


2.如权利要求1所述的数据处理方法,其特征在于,所述系统变量包括数据中心变量、环境变量和版本变量。


3.如权利要求1所述的数据处理方法,其特征在于,Upstream名称的命名规范为:应用名+数据中心+环境+版本。


4.一种基于Nginx+Lua的数据处理设备,其特征在于,包括设置单元和请求单元;
所述设置单元用于:
采用Nginx服务器根据预设规则绑定域名和后端应用,建立域...

【专利技术属性】
技术研发人员:蒋孟李英谭超
申请(专利权)人:猪八戒股份有限公司
类型:发明
国别省市:重庆;50

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

1