千家信息网

如何实现nginx proxy_store文件管理

发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,如何实现nginx proxy_store文件管理,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1。源码下载地址:https://git
千家信息网最后更新 2025年02月13日如何实现nginx proxy_store文件管理

如何实现nginx proxy_store文件管理,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1。源码下载地址:

https://github.com/cxwshawn/ngx_proxy_store_file_mgr

2。介绍:

1)、nginx-conf目录:主要实现基于nginx.conf中操作redis数据库代码,基于lua实现;大致流程:

获取cache锁是否是locked -> 如果是locked,说明文件管理进程正在做lru策略,直接proxy到上游,不操作本地文件;

-> 非locked, 那么设置redis中sorted set文件访问时间(即score)

redis结构采用hash+sorted set; hash为md5(uri)->filepath, sortedset 为:md5(uri)+ngx.now()(score)排序;

2)、src目录:主要采用golang实现的nginx proxy_store的文件管理,主要思想:

目前只统计当磁盘剩余不超过20%时,通过redis中的sorted set排序结果取百分比的数量依次进行删除;

3)、配置项:

{

"MaxFileLimit" : 100000, 最大文件数量,超过该数量时做LRU(未实现)

"CheckInterval" : 20, 检测做LRU的时间间隔

"ExpireDays" : 7, 过期时间超过7day的文件均会删除

"ErrorLog": true, 是否输出错误日志

"AccessLog": false, 是否输入调试日志

"SortedSetName": "defset", redis中sortedset的名字与access_file.lua文件中的sorte set名字一致

"HashName": "defhash", redis中hash名字与access_file.lua文件中的hash名字一致

"RedisAddr" : "127.0.0.1:6379", redis数据库的地址

"RoutineCount" : 32 go lru的并发数

}

4)、如有问题,mail到cxwshawn@yeah.net

看完上述内容,你们掌握如何实现nginx proxy_store文件管理的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0