如何监控nginx代理缓存?

如何监控nginx代理缓存?

我想看看哪些对象被我的 nginx 反向代理缓存(以 apache 作为后端)。到目前为止,我找不到方法,只有它的信息尚未实施

原因是我想调整配置以获得最佳性能,而不会给服务器带来太大压力,因为后端是一个生产系统。我知道基准测试会更好,但目前这不是一个选择。所以我认为另一种方法是监控缓存。

这可能吗?如果可以,怎么做?(尽管使用上面链接中提到的补丁修补了 nginx)

答案1

Nginx 将缓存文件保存在 Proxy_cache_path 文件夹中。这些文件以代理 URL 的 md5 ooutput 命名。

请注意,nginx 将代理标头保存在缓存文件中。因此检查图片可能会很困难。

阿维

答案2

  • Nginx 将缓存文件保存在 proxy_cache_path 文件夹中。
  • 这些文件以 proxy_cache_key 的 md5 输出命名(而不是代理 url 的 md5 输出)。

您实际上可以轻松地自行验证:只需打开 proxy_cache_path 文件夹中的一个文件并对密钥运行 md5sum:

$ cat /var/cache/nginx/d/be/54a355887f2e4391a6e0cb9150ae3bed
[...]
KEY: https://test/style.css
HTTP/1.0 200 OK
Strict-Transport-Security: max-age=31536000; includeSubDomains
[...]
$ echo -n https://test/style.css | md5sum
54a355887f2e4391a6e0cb9150ae3bed  -

答案3

可能有点相关。要查看缓存区域中有多少条目,请检查缓存路径中保存了多少条目(/tmp/nginx_cache在我的示例中)。

nginx@nginx-5d468f984d-trj8s:/tmp/nginx_cache$ find . -type f  | wc -l
18719

这表明区域中保存了 18719 个条目(上限,其中一些可能是陈旧的)。

缓存区域的路径由配置缓存的指令决定。例如nginx 缓存指南

相关内容