CN113360464A - 基于Nginx实现OSS的缓存同步方法 - Google Patents
基于Nginx实现OSS的缓存同步方法 Download PDFInfo
- Publication number
- CN113360464A CN113360464A CN202110645919.6A CN202110645919A CN113360464A CN 113360464 A CN113360464 A CN 113360464A CN 202110645919 A CN202110645919 A CN 202110645919A CN 113360464 A CN113360464 A CN 113360464A
- Authority
- CN
- China
- Prior art keywords
- cache
- nginx
- oss
- server
- files
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000003860 storage Methods 0.000 claims abstract description 33
- 238000004140 cleaning Methods 0.000 claims description 3
- 238000010926 purge Methods 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 abstract description 3
- 230000003068 static effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种基于Nginx实现OSS的缓存同步方法,通过对请求文件的缓存,实现类似于CDN服务器加速的功能,提高服务器静态资源的访问速度,且可以对服务器文件的修改实时同步缓存的方法。其包括以下步骤:1)对象存储缓存;2)缓存文件的同步3)缓存文件的定时同步:自定义“缓存文件更新时间”,当文件被缓存之后会将当时的时间记录为key,当缓存文件保存时间超过所定义的“缓存文件更新时间”就会自动清除对应的文件,并再次请求OSS服务器获取最新的文件保存为缓存;时间记录key会根据缓存更新时间自动更新,上传文件后会自动更新缓存和时间记录key。
Description
技术领域
本发明涉及一种基于Nginx实现OSS的缓存同步方法,属于计算机技术领域。
背景技术
随着网盘,云数据存储的发展,人们对于存储文件的类型和大小更加的需求更加多种多样,对象存储的出现将文件的存储简化为对象,让人们不需要关心数据的具体存放位置,只需要根据对象存储提供的连接即可获取。随着人们对于网络安全的需要更多的公司和企业选择自建OSS(对象存储),随着OSS(对象存储)的发展,对于OSS(对象存储)的访问频率,数据的准确性,等要求越来越高,便需要使用缓存来提升OSS(对象存储)的访问效率。
发明内容
本发明目的是提供了一种基于Nginx实现OSS的缓存同步方法,通过对请求文件的缓存,实现类似于CDN服务器加速的功能,提高服务器静态资源的访问速度,且可以对服务器文件的修改实时同步缓存的方法。
本发明为实现上述目的,通过以下技术方案实现:
一种基于Nginx实现OSS的缓存同步方法,包括以下步骤:
1)对象存储缓存: 通过Nginx服务器反向代理OSS服务,并对所需要的文件进行缓存;
2)缓存文件的同步: 由于OSS上传请求与下载请求的差异来判断是否去更新对应文件的缓存,当用户成功上传文件到OSS服务器上时就可以通过程序去自动清除Nginx上的缓存并下载OSS服务器上新的文件;
3)缓存文件的定时同步: 自定义“缓存文件更新时间”,当文件被缓存之后会将当时的时间记录为key,当缓存文件保存时间超过所定义的“缓存文件更新时间”就会自动清除对应的文件,并再次请求OSS服务器获取最新的文件保存为缓存;时间记录key会根据缓存更新时间自动更新,上传文件后会自动更新缓存和时间记录key。
上述基于Nginx实现OSS的缓存同步方法基础上, Nginx服务器安装purge模块,自定义dockerfile的方式来生成nginx docker image。
上述基于Nginx实现OSS的缓存同步方法基础上,通过minio建立一个OSS在在服务器上安装好docker。
上述基于Nginx实现OSS的缓存同步方法基础上,上传文件步骤如下:
1)用户上传文件依次到web文件***、Nginx服务器、OSS对象存储服务器;
2)OSS对象存储服务器将保存结果返回web文件***;
3)web文件***清楚对应的文件缓存至Nginx服务器;
4)Nginx服务器将清除结果返回web文件***;
5)web文件***将上传结果返回用户。
上述基于Nginx实现OSS的缓存同步方法基础上,下载文件步骤如下:
1)用户将请求文件依次发送给web文件***和Nginx服务器;
2)Nginx服务器将下载文件请求发送OSS对象存储服务器;
2)OSS对象存储服务器将文件返回Nginx服务器;
3)Nginx服务器将文件返回web文件***;
4)web文件***将返回文件返回用户;
5)用户将再次请求文件依次发送给web文件***和Nginx服务器;
6)Nginx服务器返回文件缓存web文件***;
7)web文件***将文件返回用户。
本发明的优点在于:
通过对请求文件的缓存,实现类似于CDN服务器加速的功能,提高服务器静态资源的访问速度,且可以对服务器文件的修改实时同步缓存。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明实施例的文件下载流程示意图。
图2为本发明实施例的缓存更新流程示意图。
图3为本发明实施例的文件下载时序示意图。
图4为本发明实施例的文件上传时序示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
正如背景技术现有技术中存在以下问题:OSS(对象存储)的访问效率低, OSS(对象存储)服务的访问压力大。
本发明采用方案如下:
一种基于Nginx实现OSS的缓存同步方法,包括以下步骤:
1)对象存储缓存: 通过Nginx服务器反向代理OSS服务,并对所需要的文件进行缓存;
2)缓存文件的同步: 由于OSS上传请求与下载请求的差异来判断是否去更新对应文件的缓存,当用户成功上传文件到OSS服务器上时就可以通过程序去自动清除Nginx上的缓存并下载OSS服务器上新的文件;
3)缓存文件的定时同步: 自定义“缓存文件更新时间”,当文件被缓存之后会将当时的时间记录为key,当缓存文件保存时间超过所定义的“缓存文件更新时间”就会自动清除对应的文件,并再次请求OSS服务器获取最新的文件保存为缓存;时间记录key会根据缓存更新时间自动更新,上传文件后会自动更新缓存和时间记录key。
实施例
通过docker来部署一个简单的OSS(对象存储)缓存和缓存同步案例,具体步骤如下:
1.nginx服务器的部署
Nginx服务器安装purge模块,自定义dockerfile的方式来生成nginx dockerimage,自定义Nginx配置OSS(对象存储)实现反向代理和文件缓存。
2.OSS(对象存储)的部署
通过minio建立一个OSS在在服务器上安装好docker。
3.通过nginx反向代理OSS(对象存储)
通过nginx服务器下载OSS(对象存储)查看对应的nginx缓存目录中是否存在缓存文件,然后通过对应的访问路径添加参数去清除nginx,查看是否能够成功清除缓存。示例:
下载文件连接:http://192.168.38.130/test/test.log
清除缓存连接:http://192.168.38.130/purge/test/test.log。
上传文件步骤如下:
1)用户上传文件依次到web文件***、Nginx服务器、OSS对象存储服务器;
2)OSS对象存储服务器将保存结果返回web文件***;
3)web文件***清楚对应的文件缓存至Nginx服务器;
4)Nginx服务器将清除结果返回web文件***;
5)web文件***将上传结果返回用户。
下载文件步骤如下:
1)用户将请求文件依次发送给web文件***和Nginx服务器;
2)Nginx服务器将下载文件请求发送OSS对象存储服务器;
2)OSS对象存储服务器将文件返回Nginx服务器;
3)Nginx服务器将文件返回web文件***;
4)web文件***将返回文件返回用户;
5)用户将再次请求文件依次发送给web文件***和Nginx服务器;
6)Nginx服务器返回文件缓存web文件***;
7)web文件***将文件返回用户。
4.功能实现编码
缓存更新流程图如图2所示。通过编码实现文件上传时判断文件是否上传成功,上传成功后通过上传路径添加对应的参数清除Nginx服务器缓存,同时请求下载连接使Nginx服务器重新加载缓存文件。同时本地服务器对下载的文件和上传的文件做MD5验证,验证成功则文件上传成功。
下载文件时直接请求Nginx服务器,Nginx服务器返回保存的缓存文件提高访问效率。后续可以对Nginx服务器优化升级,例如:增加Nginx服务器数量,设置负载均衡,集群等优化。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于Nginx实现OSS的缓存同步方法,其特征在于,包括以下步骤:
1)对象存储缓存: 通过Nginx服务器反向代理OSS服务,并对所需要的文件进行缓存;
2)缓存文件的同步: 由于OSS上传请求与下载请求的差异来判断是否去更新对应文件的缓存,当用户成功上传文件到OSS服务器上时就可以通过程序去自动清除Nginx上的缓存并下载OSS服务器上新的文件;
3)缓存文件的定时同步: 自定义“缓存文件更新时间”,当文件被缓存之后会将当时的时间记录为key,当缓存文件保存时间超过所定义的“缓存文件更新时间”就会自动清除对应的文件,并再次请求OSS服务器获取最新的文件保存为缓存;时间记录key会根据缓存更新时间自动更新,上传文件后会自动更新缓存和时间记录key。
2.根据权利要求1所述基于Nginx实现OSS的缓存同步方法,其特征在于:Nginx服务器安装purge模块,自定义dockerfile的方式来生成nginx docker image。
3.根据权利要求1所述基于Nginx实现OSS的缓存同步方法,其特征在于:通过minio建立一个OSS在在服务器上安装好docker。
4.根据权利要求1所述基于Nginx实现OSS的缓存同步方法,其特征在于:上传文件步骤如下:
1)用户上传文件依次到web文件***、Nginx服务器、OSS对象存储服务器;
2)OSS对象存储服务器将保存结果返回web文件***;
3)web文件***清楚对应的文件缓存至Nginx服务器;
4)Nginx服务器将清除结果返回web文件***;
5)web文件***将上传结果返回用户。
5.根据权利要求1所述基于Nginx实现OSS的缓存同步方法,其特征在于:下载文件步骤如下:
1)用户将请求文件依次发送给web文件***和Nginx服务器;
2)Nginx服务器将下载文件请求发送OSS对象存储服务器;
2)OSS对象存储服务器将文件返回Nginx服务器;
3)Nginx服务器将文件返回web文件***;
4)web文件***将返回文件返回用户;
5)用户将再次请求文件依次发送给web文件***和Nginx服务器;
6)Nginx服务器返回文件缓存web文件***;
7)web文件***将文件返回用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110645919.6A CN113360464A (zh) | 2021-06-10 | 2021-06-10 | 基于Nginx实现OSS的缓存同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110645919.6A CN113360464A (zh) | 2021-06-10 | 2021-06-10 | 基于Nginx实现OSS的缓存同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360464A true CN113360464A (zh) | 2021-09-07 |
Family
ID=77533525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110645919.6A Pending CN113360464A (zh) | 2021-06-10 | 2021-06-10 | 基于Nginx实现OSS的缓存同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360464A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753966A (zh) * | 2013-12-25 | 2015-07-01 | 明博教育科技有限公司 | 一种基于服务器和客户端缓存的资源文件查询方法及*** |
CN105100210A (zh) * | 2015-06-24 | 2015-11-25 | 深圳市美贝壳科技有限公司 | 一种客户端应用的文件缓存方法及装置 |
CN105430438A (zh) * | 2015-11-16 | 2016-03-23 | Tcl集团股份有限公司 | 一种智能电视主题商店服务器端的配置方法及*** |
CN106909411A (zh) * | 2015-12-23 | 2017-06-30 | ***通信集团江苏有限公司 | 一种文件更新方法及装置 |
CN108681489A (zh) * | 2018-05-25 | 2018-10-19 | 西安交通大学 | 一种超算环境下的海量数据实时采集与处理方法 |
CN110134896A (zh) * | 2019-05-17 | 2019-08-16 | 山东渤聚通云计算有限公司 | 一种代理服务器的监控过程及智能缓存方法 |
CN111475180A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 更新客户端缓存的方法和*** |
-
2021
- 2021-06-10 CN CN202110645919.6A patent/CN113360464A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753966A (zh) * | 2013-12-25 | 2015-07-01 | 明博教育科技有限公司 | 一种基于服务器和客户端缓存的资源文件查询方法及*** |
CN105100210A (zh) * | 2015-06-24 | 2015-11-25 | 深圳市美贝壳科技有限公司 | 一种客户端应用的文件缓存方法及装置 |
CN105430438A (zh) * | 2015-11-16 | 2016-03-23 | Tcl集团股份有限公司 | 一种智能电视主题商店服务器端的配置方法及*** |
CN106909411A (zh) * | 2015-12-23 | 2017-06-30 | ***通信集团江苏有限公司 | 一种文件更新方法及装置 |
CN108681489A (zh) * | 2018-05-25 | 2018-10-19 | 西安交通大学 | 一种超算环境下的海量数据实时采集与处理方法 |
CN111475180A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 更新客户端缓存的方法和*** |
CN110134896A (zh) * | 2019-05-17 | 2019-08-16 | 山东渤聚通云计算有限公司 | 一种代理服务器的监控过程及智能缓存方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103973475B (zh) | 差异补丁包生成方法及下载方法、服务器、客户端 | |
US9128797B2 (en) | Method and system for software upgrade | |
US8996655B2 (en) | Method for horizontal scale delta encoding | |
US6978453B2 (en) | System with required enhancements to syncML DM environment to support firmware updates | |
CN105812435B (zh) | 应用升级数据包处理方法、装置、电子设备及*** | |
CN104915220B (zh) | 一种客户端应用程序的升级方法和***、客户端 | |
CN101662503A (zh) | 网络中的信息传输方法、代理服务器和服务*** | |
US8490077B2 (en) | Runtime versioning and distribution of dynamic web-elements | |
US20140082154A1 (en) | File sharing method, terminal and relay server | |
CN107302582B (zh) | 千万级物联网场景的数据采集及弱推送方法 | |
CN107483241B (zh) | 一种在网元升级过程中下载升级镜像版本的方法和装置 | |
CN102355500A (zh) | 业务推送方法和装置 | |
CN110865842A (zh) | 一种ota升级方法和设备 | |
CN111327697B (zh) | 一种数据下载方法、装置、设备及存储介质 | |
CN106911729A (zh) | 一种适用于国产处理器的操作***远程安装方法 | |
WO2009117921A1 (zh) | 分布式网络管理***、网管服务器和方法 | |
CN104639648A (zh) | 一种智能储物柜的远程升级方法 | |
CN104951480A (zh) | 一种cdn***中资源存储的索引装置及方法 | |
CN103677956A (zh) | 一种在计算设备上模拟移动设备应用运行的方法和装置 | |
Chen et al. | Starlight: Fast container provisioning on the edge and over the {WAN} | |
CN111464347B (zh) | 一种大规模异构设备应用自动部署装置及方法 | |
CN112702195A (zh) | 网关配置方法、电子设备及计算机可读存储介质 | |
CN109240726B (zh) | 一种软件更新方法及*** | |
CN105763461B (zh) | 路由器升级方法和*** | |
CN103634410A (zh) | 基于内容分发网络cdn的数据同步方法,客户端及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210907 |
|
RJ01 | Rejection of invention patent application after publication |