我想看看哪些对象被我的 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 缓存指南。