从 NGINX 缓存提供服务时转发请求-这可能吗?

从 NGINX 缓存提供服务时转发请求-这可能吗?

我已启用 Nginx 缓存。我遵循官方文档一切运行正常。当请求首次到达时,它会通过代理传递到服务器。响应会被缓存。

从那时起,所有请求都由 Nginx 缓存提供,直到缓存过期。但我想要一个额外的东西。

这是我想要的:

  1. 当请求从缓存中得到满足时,我想向我的服务器发出 API 请求,这样我就不会丢失点击次数(计数器)

我怎样才能做到这一点?

我尝试过该mirror命令,但当页面从缓存中提供时,它不会被调用。只有当缓存过期时才会调用它。这是我尝试的配置快照。这可能吗?还有其他方法吗?

在此处输入图片描述

编辑 缓存指令如第二张屏幕截图所示。

在此处输入图片描述

答案1

这似乎是不可能的。该mirror指令作为原始请求的子请求进行处理,因此如果 nginx 不处理原始请求,则镜像请求也不会被处理。

作为一种解决方法,您可以添加第二个自定义access_log指令,该指令使用自定义log_format。然后,您的程序可以读取此日志来确定缓存命中的时间和网址。事实上,它可以使用该日志来计算所有命中,无论是否缓存。

相关内容