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,根据用户的访问请求到共享内存缓存中查找用户请求访问的服务接口对应的缓存数据,若存在对应的缓存数据,则将对应的缓存数据返回给用户,若不存在对应的缓存数据,进 ...
【技术保护点】
一种基于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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。