一种基于NGINX+LUA的安全加速中间件实现方法及装置制造方法及图纸

技术编号:15296238 阅读:75 留言:0更新日期:2017-05-11 16:22
本发明专利技术涉及一种基于NGINX+LUA的安全加速中间件实现方法及装置,属于安全加速中间件领域,能提高单台服务器的安全性和处理速度。本发明专利技术在服务器接收到用户的访问请求时,先从共享内存中获取配置信息,若不存在配置信息,则访问动态服务接口获取配置信息,然后根据配置信息筛选该访问请求能否放行,再根据配置信息检查用户请求访问的服务接口是否为可缓存服务,若是,则进入共享内存和REDIS集群中查找该服务接口对应的缓存数据并返回给用户,若否,则调用对应动态服务接口去获取数据。用于提高单台服务器的安全性,加速部分动态服务接口数据的调用速度。

Method and device for realizing NGINX+LUA based security acceleration Middleware

The invention relates to a method and a device for realizing a security acceleration middleware based on NGINX+LUA, which belongs to the field of the safe acceleration middleware, and can improve the security and the processing speed of a single server. The server receives the user's access request, to obtain configuration information from the shared memory, if there is no configuration information access, dynamic service interface to obtain configuration information, and then according to the configuration information to select the access request can release, according to the service interface configuration information to check whether the user requests access to cache service if so, enter the cache memory search and data sharing in REDIS cluster the corresponding service interface and returned to the user, if not, then call the corresponding dynamic service interface to obtain data. Used to improve the security of a single server, accelerate the speed of the dynamic service interface data.

【技术实现步骤摘要】

本专利技术涉及基于NGINX+LUA的安全加速中间件领域。
技术介绍
目前的单台WEB(网站)服务器受限于后端动态脚本的运行效率,当大规模访问量或DDOS(分布式拒绝服务)攻击涌入时,服务器很容易当机。现有技术一般是以一台或多台反向代理服务器来提供加速或安全过滤功能,需要较多的硬件资源,本专利技术则是在现有的NGINX(一种高性能的网站服务器)服务器上用LUA(一种小巧的脚本语言)进行扩展,合理利用现有资源,对服务接口进行缓存加速,有效提升单台WEB服务器的性能及安全性,能起到重要的安全加速作用。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于NGINX+LUA的安全加速中间件实现方法及装置,目的在于提高单台服务器的安全性,加速服务接口获取到的数据的调用速度。本专利技术解决上述技术问题的技术方案如下:一种基于NGINX+LUA的安全加速中间件实现方法,所述方法包括以下步骤:S1,在服务器接收到用户的访问请求时,先从共享内存中获取配置信息,若存在配置信息,则根据配置信息筛选该访问请求能否放行;若不存在配置信息,则访问动态服务接口获取配置信息并缓存到共享内存,然后根据配置信息筛选该访问请求能否放行,若筛选通过能放行,则进入S2,若筛选不通过不能放行,则返回报错信息;S2,根据配置信息检查用户请求访问的服务接口是否为可缓存服务,若是,则进入S3,若否,则直接调用对应动态服务接口获取数据返回给用户;S3,根据用户的访问请求到共享内存缓存中查找用户请求访问的服务接口对应的缓存数据,若存在对应的缓存数据,则将对应的缓存数据返回给用户,若不存在对应的缓存数据,进入S4;S4,根据用户的访问请求到REDIS(一种数据库)集群中查找用户请求访问的服务接口对应的缓存数据,若存在对应的缓存数据,则将对应的缓存数据返回给用户,并将对应的缓存数据存入共享内存;若不存在对应的缓存数据,则调用对应动态服务接口处理,并将获取到的数据作为缓存数据存入REDIS集群和共享内存。本专利技术的有益效果是:(1)在服务器接到访问请求调用动态服务接口前,先进行安全过滤,再查找对应的缓存数据,使可被缓存的动态服务接口获得的数据能被快速调用而不用重新调用动态服务接口,服务器安全性和处理速度都能得到提升;(2)共享内存中缓存数据有效时间较短,是使用频率最高的缓存数据,REDIS集群中缓存数据有效时间比共享内存长,是使用频率较高的缓存数据,分时间级别缓存数据既能减小服务器的资源占用,又能有效提升服务器的处理速度;(3)配置信息首先由动态服务接口获取后缓存在共享内存中,也是一种缓存数据,有效时间较短,一段时间后会自动被清理,因此对配置信息修改之后能在较短时间被动态服务接口重新获取并更新到共享内存。在上述技术方案的基础上,本专利技术还可以做如下改进:进一步,所述S1中“根据配置信息筛选该访问请求能否放行”的步骤包括:S11,根据配置信息检查用户IP地址(网络之间互连的协议地址)黑名单,若该访问请求的用户的IP地址属于用户IP地址黑名单,则不放行并直接返回报错信息;若该用户不属于黑名单,则进入S12;S12,根据配置信息检查URL(统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示)正则规则黑名单,若该访问请求的URL属于URL正则规则黑名单,则不放行并直接返回报错信息;若该URL不属于黑名单,则放行并进入S2。采用上述进一步方案的有益效果是:既支持过滤用户IP地址黑名单,也支持过滤URL正则规则黑名单,能抵挡大多数不安全的访问,提升服务器的安全性能,也节约了服务器的资源,提升服务器的处理速度。进一步,所述S4中具体包括以下步骤:S41,检查REDIS集群中是否存在该访问请求的服务接口对应的缓存数据,若是,进入S42,若否,进入S44;S42,检查对应缓存数据的缓存因子与用户请求访问的服务接口的缓存因子是否相同,若缓存因子不同,则进入S44,若缓存因子相同,则进入S43;S43,检查对应缓存数据的时间戳判断该缓存数据是有效还是过期,若该缓存数据有效,则将缓存数据返回给用户并存入到共享内存;若该缓存数据过期,则进入S44;S44,检查该访问请求的服务接口是否被锁定,若是,则将REDIS集群中过期的缓存数据返回给用户;若否,则锁定该服务接口,并进入S45;S45,执行动态服务接口获取对应的数据,若动态服务接口获取数据成功,则将对应的数据返回给用户并存入REDIS集群和共享内存,同时解锁该服务接口,若动态服务接口获取数据不成功,则直接返回报错信息并解锁该服务接口。采用上述进一步方案的有益效果是:(1)对REDIS服务器中的缓存数据加上了缓存因子和缓存时间戳,通过缓存因子能批量控制缓存数据的有效性,只要服务接口的缓存因子发生变化,对应的REDIS服务器中的缓存数据会因为缓存因子不一致而失效,此时会重新调用动态服务接口获取数据,并将数据和新的缓存因子更新到REDIS服务器的缓存中;(2)缓存时间戳设置的REDIS集群中的缓存数据的有效时间大于共享内存中数据的有效时间,但小于REDIS集群中数据本身的缓存时间,在缓存时间戳设定的时间过期后重新调用动态服务接口去更新数据并缓存,协调了数据时效性和服务器的处理速度;(3)REDIS集群中某一服务接口对应的缓存数据时间戳过期之后,如果有访问请求该服务接口对应的缓存数据,则将该服务接口锁定并调用动态服务接口去获取数据,锁定该服务接口能避免在调用动态服务接口获取数据的过程中,其它访问也请求该服务接口对应的缓存数据,导致重复调用动态服务接口获取数据,降低了服务器性能。锁定服务接口之后,在调用动态服务接口获取数据的过程中,先将过期缓存数据发送给客户,在数据获取成功并缓存到REDIS集群和共享内存中之后,解锁该服务接口,能有效的提高服务器的处理效率。进一步,所述S1中的配置信息包括:各服务接口是否为可缓存服务、共享内存中缓存数据的有效时间、各服务接口的缓存因子、REDIS集群中缓存数据的缓存因子、REDIS集群中缓存数据的有效时间、用户IP地址黑名单、URL正则规则黑名单。采用上述进一步方案的有益效果是:各种与安全过滤和缓存相关的配置都存在配置信息中,可以灵活配置,根据情况自由调整服务器的处理方式,平衡和优化服务器的安全性和处理速度。进一步,所述方法还包括:成功获取共享内存或REDIS集群中的缓存数据返回给用户时,将获取成功的信息发送到日志服务器进行统计记录的步骤;对访问请求进行用户IP地址黑名单检查或URL正则规则黑名单检查后,将检查结果信息发送到日志服务器进行统计记录的步骤。采用上述进一步方案的有益效果是:对缓存数据调用信息和访问过滤信息进行统计记录,能为以后分析服务数据热门度和制定新的安全防护策略提供数据支持,有助于优化服务器处理性能。一种基于NGINX+LUA的安全加速中间件装置,所述装置包括:安全防护模块,用于在服务器接收到用户的访问请求时,先从共享内存中获取配置信息,若存在配置信息,则根据配置信息筛选该访问请求能否放行;若不存在配置信息,则访问动态服务接口获取配置信息并缓存到共享内存,然后根据配置信息筛选该访问请求能否放行,若筛选通过能放行,则进入服务接口加速模块,若筛选不通过不能放行,则返回报错信息本文档来自技高网...
一种基于NGINX+LUA的安全加速中间件实现方法及装置

【技术保护点】
一种基于NGINX+LUA的安全加速中间件实现方法,其特征在于,所述方法包括以下步骤:S1,在服务器接收到用户的访问请求时,先从共享内存中获取配置信息,若存在配置信息,则根据配置信息筛选该访问请求能否放行;若不存在配置信息,则访问动态服务接口获取配置信息并缓存到共享内存,然后根据配置信息筛选该访问请求能否放行,若筛选通过能放行,则进入S2,若筛选不通过不能放行,则返回报错信息;S2,根据配置信息检查用户请求访问的服务接口是否为可缓存服务,若是,则进入S3,若否,则调用对应动态服务接口;S3,根据用户的访问请求到共享内存缓存中查找用户请求访问的服务接口对应的缓存数据,若存在对应的缓存数据,则将对应的缓存数据返回给用户,若不存在对应的缓存数据,进入S4;S4,根据用户的访问请求到REDIS集群中查找用户请求访问的服务接口对应的缓存数据,若存在对应的缓存数据,则将对应的缓存数据返回给用户,并将对应的缓存数据存入共享内存;若不存在对应的缓存数据,则调用对应动态服务接口处理,并将获取到的数据作为缓存数据存入REDIS集群和共享内存。

【技术特征摘要】
1.一种基于NGINX+LUA的安全加速中间件实现方法,其特征在于,所述方法包括以下步骤:S1,在服务器接收到用户的访问请求时,先从共享内存中获取配置信息,若存在配置信息,则根据配置信息筛选该访问请求能否放行;若不存在配置信息,则访问动态服务接口获取配置信息并缓存到共享内存,然后根据配置信息筛选该访问请求能否放行,若筛选通过能放行,则进入S2,若筛选不通过不能放行,则返回报错信息;S2,根据配置信息检查用户请求访问的服务接口是否为可缓存服务,若是,则进入S3,若否,则调用对应动态服务接口;S3,根据用户的访问请求到共享内存缓存中查找用户请求访问的服务接口对应的缓存数据,若存在对应的缓存数据,则将对应的缓存数据返回给用户,若不存在对应的缓存数据,进入S4;S4,根据用户的访问请求到REDIS集群中查找用户请求访问的服务接口对应的缓存数据,若存在对应的缓存数据,则将对应的缓存数据返回给用户,并将对应的缓存数据存入共享内存;若不存在对应的缓存数据,则调用对应动态服务接口处理,并将获取到的数据作为缓存数据存入REDIS集群和共享内存。2.如权利要求1所述的基于NGINX+LUA的安全加速中间件实现方法,其特征在于,所述S1中“根据配置信息筛选该访问请求能否放行”的步骤包括:S11,根据配置信息检查用户IP地址黑名单,若该访问请求的用户的IP地址属于用户IP地址黑名单,则不放行并直接返回报错信息;若该用户不属于黑名单,则进入S12;S12,根据配置信息检查URL正则规则黑名单,若该访问请求的URL属于URL正则规则黑名单,则不放行并直接返回报错信息;若该URL不属于黑名单,则放行并进入S2。3.如权利要求2所述的基于NGINX+LUA的安全加速中间件实现方法,其特征在于,所述S4中具体包括以下步骤:S41,检查REDIS集群中是否存在该访问请求的服务接口对应的缓存数据,若是,进入S42,若否,进入S44;S42,检查对应缓存数据的缓存因子与用户请求访问的服务接口的缓存因子是否相同,若缓存因子不同,则进入S44,若缓存因子相同,则进入S43;S43,检查对应缓存数据的时间戳判断该缓存数据是有效还是过期,若该缓存数据有效,则将缓存数据返回给用户并存入到共享内存;若该缓存数据过期,则进入S44;S44,检查该访问请求的服务接口是否被锁定,若是,则将REDIS集群中过期的缓存数据返回给用户;若否,则锁定该服务接口,并进入S45;S45,执行动态服务接口获取对应的数据,若动态服务接口获取数据成功,则将对应的数据返回给用户并存入REDIS集群和共享内存,同时解锁该服务接口,若动态服务接口获取数据不成功,则直接返回报错信息并解锁该服务接口。4.如权利要求3所述的基于NGINX+LUA的安全加速中间件实现方法,其特征在于,所述S1中的配置信息包括:各服务接口是否为可缓存服务、共享内存中缓存数据的有效时间、各服务接口的缓存因子、REDIS集群中缓存数据的缓存因子、REDIS集群中缓存数据的有效时间、用户IP地址黑名单、URL正则规则黑名单。5.如权利要求1至4任一项所述的基于NGINX+LUA的安全加速中间件实现方法,其特征在于,所述方法还包括:成功获取共享内存或REDIS集群中的缓存数据返回给用户时,将获取成功的信息发送到日志服务器进行统计记录的步骤;对访问请求进行用户IP地址黑名单检查或URL正则规则黑名单检查后,将检查结果信息发送到日志服务器进行统计记录的步骤。6.一种基于NGINX+LUA的安全加速中间件装置,其特征在于,所述装置包括:安全防护模块,用于在服务器接收到用户的访问请求时,先从共享内存中获取配置信息,...

【专利技术属性】
技术研发人员:陈朱尧帅富元
申请(专利权)人:成都视达科信息技术有限公司
类型:发明
国别省市:四川;51

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

1