我已启用 Nginx 缓存。我遵循官方文档一切运行正常。当请求首次到达时,它会通过代理传递到服务器。响应会被缓存。
从那时起,所有请求都由 Nginx 缓存提供,直到缓存过期。但我想要一个额外的东西。
这是我想要的:
- 当请求从缓存中得到满足时,我想向我的服务器发出 API 请求,这样我就不会丢失点击次数(计数器)
我怎样才能做到这一点?
我尝试过该mirror
命令,但当页面从缓存中提供时,它不会被调用。只有当缓存过期时才会调用它。这是我尝试的配置快照。这可能吗?还有其他方法吗?
编辑 缓存指令如第二张屏幕截图所示。
答案1
这似乎是不可能的。该mirror
指令作为原始请求的子请求进行处理,因此如果 nginx 不处理原始请求,则镜像请求也不会被处理。
作为一种解决方法,您可以添加第二个自定义access_log
指令,该指令使用自定义log_format
。然后,您的程序可以读取此日志来确定缓存命中的时间和网址。事实上,它可以使用该日志来计算所有命中,无论是否缓存。