基于Nginx的静态资源和数据的缓存方法及系统技术方案

技术编号:31742788 阅读:13 留言:0更新日期:2022-01-05 16:21
本发明专利技术公开了基于Nginx的静态资源和数据的缓存方法及系统,属于计算机软件开发技术领域,本发明专利技术要解决的技术问题为如何提高网站的响应速度,并提高网站的并发请求能力,减少网站的运行成本,采用的技术方案为:该方法是使用Nginx代理真实的网站服务缓存网站中的静态资源和数据,使用Nginx作为代理服务器,代理真正的服务应用,在用户和服务之间做一层代理,避免用户能够直接访问真正应用服务,提高网站的响应速度,同时提高网站的并发请求能力;具体如下:使用Nginx将静态资源缓存至服务器,使用URL作为静态资源缓存的索引;使用Redis和Lua将静态数据缓存至Redis数据库,并将请求的URL作为Redis数据的Key值。URL作为Redis数据的Key值。URL作为Redis数据的Key值。

【技术实现步骤摘要】
基于Nginx的静态资源和数据的缓存方法及系统


[0001]本专利技术涉及计算机软件开发
,具体地说是一种基于Nginx的静态资源和数据的缓存方法及系统。

技术介绍

[0002]Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行。
[0003]目前大多说的网站都包含静态数据和动态数据两部分。相比较而言,静态数据拥有变更的周期长,变更频率低的特点,这种数据没有必要每次访问时都去请求服务端;因为同时大量的请求会拖慢网站服务端的响应速度,出现加载过慢的情况。
[0004]故如何提高网站的响应速度,并提高网站的并发请求能力,减少网站的运行成本是目前亟待解决的技术问题。

技术实现思路

[0005]本专利技术的技术任务是提供一种基于Nginx的静态资源和数据的缓存方法及系统,来解决如何提高网站的响应速度,并提高网站的并发请求能力,减少网站的运行成本的问题。
[0006]本专利技术的技术任务是按以下方式实现的,一种基于Nginx的静态资源和数据的缓存方法,该方法是使用Nginx代理真实的网站服务缓存网站中的静态资源和静态数据,使用Nginx作为代理服务器,代理真正的服务应用,在用户和服务之间做一层代理,避免用户能够直接访问真正应用服务,提高网站的响应速度,同时提高网站的并发请求能力;具体如下:
[0007]使用Nginx将静态资源缓存至服务器,使用URL作为静态资源缓存的索引;
[0008]使用Redis和Lua将静态数据缓存至Redis数据库,并将请求的URL作为Redis数据的Key值。
[0009]作为优选,静态资源包括html页面、图片、CSS样式和文件;静态数据是指变更频率低于设定值的API接口数据,静态数据包括前台页面展示所需要的RestAPI接口数据。
[0010]作为优选,对于静态资源的缓存借助于Nginx本身的cache功能,具体如下:
[0011]首次访问静态资源时,访问网站所在的服务器获取相应资源,并把相应结果缓存到Nginx所能访问的缓存目录里,并对其进行压缩;
[0012]再次请求该静态资源时,检验到该静态资源已经有缓存,Nginx会自动访问缓存文件,直接返回浏览器,不再访问真实的文件,减少请求次数。
[0013]作为优选,对于静态数据的缓存具体如下:
[0014]首次访问静态数据时,使用Lua脚本检测Redis数据库中是否有此URL请求的响应
内容:
[0015]若没有,则访问服务器,并将响应内容存到Redis数据库中;
[0016]若有,则直接使用Redis数据库中的值,直接访问浏览器,不再进行访问,有效减少访问次数。
[0017]作为优选,静态数据的缓存是使用Redis数据库做数据存储,并以<key,Value>键值对的方式存储;将请求的URL做MD5计算后作为Redis数据库里面的Key,响应内容作为Value,同时会对静态数据做持久化处理;
[0018]其中,URL方式的匹配包括对精准URL的匹配和使用正则表达式对URL进行匹配。
[0019]作为优选,静态资源缓存的失效借助于Nginx Cache实现,失效后的数据会被清理,需要重新访问才可以获得;
[0020]静态数据的失效借助于Redis数据中数据的过期时间来实现,在数据进行缓存时,同时设置对应Key的过期时间,Key过期后对应的数据自动清理。
[0021]更优地,对于已缓存完成的静态资源和静态数据进行缓存清理,具体如下:
[0022]被代理的应用,在静态资源和数据发生变更后,手动调用此功能,对缓存数据进行清理;
[0023]若是静态资源,则在缓存文件里面删除;
[0024]若是静态数据,则将Redis数据库里面的key删除;
[0025]下次请求时,重新访问相应的URL并缓存其数据内容;
[0026]缓存清理时,对批量请求同时进行缓存清理,批量选择要清理的缓存URL,即可对其缓存数据进行清理。
[0027]一种基于Nginx的静态资源和数据的缓存系统,该系统包括,
[0028]缓存模块一,用于借助于Nginx本身的cache功能进行静态资源的缓存,并把URL作为缓存文件的索引,方便快速查找网站数据的缓存文件;具体如下:
[0029]首次访问静态资源时,访问网站所在的服务器获取相应资源,并把相应结果缓存到Nginx所能访问的缓存目录里,并对其进行压缩;
[0030]再次请求该静态资源时,检验到该静态资源已经有缓存,Nginx会自动访问缓存文件,直接返回浏览器,不再访问真实的文件,减少请求次数;
[0031]缓存模块二,用于使用Redis数据库做静态数据存储,并以<key,Value>键值对的方式存储;将请求的URL做MD5计算后作为Redis数据库里面的Key,响应内容作为Value,同时会对静态数据做持久化处理;
[0032]失效模块,用于设置URL缓存失效的时间,即当时间大于缓存时间,缓存的数据会自动清理,需要在下次访问时,再从服务器重新获取并缓存;失效模块包括,
[0033]失效子模块一,用于借助于Nginx Cache实现对静态资源缓存的失效管理,失效后的数据会被清理,需要重新访问才能够获得;
[0034]失效子模块二,用于借助于Redis数据中数据的过期时间来实现对静态数据的失效管理,在数据进行缓存时,同时设置对应Key的过期时间,Key过期后对应的数据自动清理;
[0035]缓存清理模块,用于提供缓存清理功能,被代理的应用,在静态资源和静态数据发生变更后,可以手动调用此功能,对缓存数据进行清理;下次请求时,会重新访问相应的URL
并缓存其数据内容;
[0036]若是静态资源,则在缓存文件里面删除;
[0037]若是静态数据,则将Redis数据库里面的key删除。
[0038]一种电子设备,包括:存储器和至少一个处理器;
[0039]其中,所述存储器存储计算机执行指令;
[0040]所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上述的基于Nginx的静态资源和数据的缓存方法。
[0041]一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如上述的基于Nginx的静态资源和数据的缓存方法。
[0042]其中,Redis(全称:Remote Dictionary Server远程字典服务)是一个开源的使用ANSI C语言编写、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Nginx的静态资源和数据的缓存方法,其特征在于,该方法是使用Nginx代理真实的网站服务缓存网站中的静态资源和数据,使用Nginx作为代理服务器,代理真正的服务应用,在用户和服务之间做一层代理,避免用户能够直接访问真正应用服务,提高网站的响应速度,同时提高网站的并发请求能力;具体如下:使用Nginx将静态资源缓存至服务器,使用URL作为静态资源缓存的索引;使用Redis和Lua将静态数据缓存至Redis数据库,并将请求的URL作为Redis数据的Key值。2.根据权利要求1所述的基于Nginx的静态资源和数据的缓存方法,其特征在于,静态资源包括html页面、图片、CSS样式和文件;静态数据是指变更频率低于设定值的API接口数据,静态数据包括前台页面展示所需要的RestAPI接口数据。3.根据权利要求1所述的基于Nginx的静态资源和数据的缓存方法,其特征在于,对于静态资源的缓存借助于Nginx本身的cache功能,具体如下:首次访问静态资源时,访问网站所在的服务器获取相应资源,并把相应结果缓存到Nginx所能访问的缓存目录里,并对其进行压缩;再次请求该静态资源时,检验到该静态资源已经有缓存,Nginx会自动访问缓存文件,直接返回浏览器,不再访问真实的文件。4.根据权利要求1所述的基于Nginx的静态资源和数据的缓存方法,其特征在于,对于静态数据的缓存具体如下:首次访问静态数据时,使用Lua脚本检测Redis数据库中是否有此URL请求的响应内容:若没有,则访问服务器,并将响应内容存到Redis数据库中;若有,则直接使用Redis数据库中的值,直接访问浏览器,不再进行访问。5.根据权利要求1所述的基于Nginx的静态资源和数据的缓存方法,其特征在于,静态数据的缓存是使用Redis数据库做数据存储,并以<key,Value>键值对的方式存储;将请求的URL做MD5计算后作为Redis数据库里面的Key,响应内容作为Value,同时会对静态数据做持久化处理;其中,URL方式的匹配包括对精准URL的匹配和使用正则表达式对URL进行匹配。6.根据权利要求1所述的基于Nginx的静态资源和数据的缓存方法,其特征在于,静态资源缓存的失效借助于Nginx Cache实现,失效后的数据会被清理,需要重新访问才可以获得;静态数据的失效借助于Redis数据中数据的过期时间来实现,在数据进行缓存时,同时设置对应Key的过期时间,Key过期后对应的数据自动清理。7.根据权利要求1

6中任一所述的基于Nginx的静态资源和数...

【专利技术属性】
技术研发人员:肖培玉徐士强董玉全高传集贺茂林梁圣奇
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1