Nginx

從 NGINX 記憶體提供服務時轉發請求 - 這可能嗎?

  • August 5, 2020

我已經啟用了 Nginx 的記憶體。我遵循了官方文件,它工作正常。發生的情況是,當請求第一次進來時,它被代理傳遞給伺服器。響應被記憶體。

從那裡開始,所有請求都從 Nginx 記憶體中提供服務,直到它過期。但我想要一個額外的東西。

這是我想要的:

  1. 當從記憶體中提供請求時,我想向我的伺服器發出 API 請求,這樣我就不會失去命中數(計數器)

我怎樣才能做到這一點?

我已經嘗試過該mirror命令,但是當從記憶體提供頁面時它不會被呼叫。只有在記憶體過期時才會呼叫它。這是我嘗試過的配置快照。這甚至可能嗎?還有其他方法可以做到這一點嗎?

在此處輸入圖像描述

編輯 記憶體指令,如第二個螢幕截圖中突出顯示的那樣。

在此處輸入圖像描述

這似乎是不可能的。該mirror指令作為原始請求的子請求處理,所以如果nginx不處理原始請求,鏡像請求也不會被處理。

作為一種解決方法,您可以添加第二個自定義access_log指令,該指令使用自定義log_format. 然後,您的程序可以讀取此日誌以確定記憶體命中發生的時間以及訪問的 URL。事實上,它可以只使用該日誌來計算所有命中,無論是否記憶體。

引用自:https://serverfault.com/questions/1028949