You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发NGINX缓存原始URI导出模块:问询Plus/OSS内存存储情况

需求说明

我正在开发一个模块,用于展示NGINX中缓存内容的原始URL。例如,当/media/image.jpg被重复请求并由NGINX代理缓存后,希望有一个端点在被请求时,导出所有活跃缓存的URI元数据,格式如下:

{md5: SG...A32, uri: "/media/image.jpg"}
{md5: DF...AB4, uri: "/media/image2.jpg"}

对我而言,获取原始未哈希缓存键也可满足需求——默认配置为:

proxy_cache_key  $scheme$proxy_host$request_uri;

遇到的问题

初步研究NGINX源码后,我推测NGINX开源版(OSS)的内存中并未存储此类信息。但由于NGINX Plus支持通配符清除功能,我认为它肯定在内存某处存储了这些信息(以便进行正则搜索实现通配符清除)。

我未找到任何文档确认NGINX Plus是否在内存中保留原始缓存键(或URI),也不清楚如何在动态加载模块中访问该信息。

已尝试的方案

  • 我开发了一个模块,可导出缓存共享内存的以下字段:
{"zone":"mycache","md5":"c510b260709c96464511de161764e0aa","mem":84,"disk":342992,"uses":5,"expire":1745848168}

(注:disk大小并非由NGINX存储,我在模块中通过手动调用stat获取。)

  • 我知晓原始URL存储在磁盘上对应的缓存文件中,但读取大量独立文件对生产环境而言成本过高。
  • 我还生成了NGINX进程的核心转储文件(gcore)并搜索字符串,确实在内存中找到了原始URL,但我认为这些只是请求内存的残留(过期数据),无法以一致的方式访问。

内容的提问来源于stack exchange,提问作者isa türk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:52:02