簡體   English   中英

nginx使用過時的緩存不起作用

[英]nginx use stale cache not working

我正在嘗試使用proxy_cache_use_stale錯誤; 當目標返回http status 500內部錯誤時,讓nginx為緩存的頁面提供服務。 我有以下設置:

location /test {
                proxy_cache     maincache;
                proxy_cache_valid 200 10s;
                proxy_cache_use_stale error;
                proxy_pass      http://127.0.0.1:3000/test;
        }
 location /toggle {
                proxy_pass      http://127.0.0.1:3000/toggle;
}

測試將返回當前時間和Http狀態200或當前時間和http狀態500。如果我調用/ toggle,則/ test返回的值將從200切換到500。

我的期望是,我應該能夠向/ test發送呼叫並獲取當前時間。 然后,我應該能夠發送對/ toggle的調用,對/ test的調用將返回第一次調用該函數的時間。 發生的事情是它將最后一次緩存保持10秒鍾,然后將其返回給當前時間,並且根本不使用緩存。

我知道將proxy_cache_valid設置為200 10s; 當返回500以外的值時,它將阻止刷新緩存,並在10秒鍾后返回空錯誤消息時將新內容存儲在緩存中。

在閱讀文檔后,我假設,舊的緩存將不會自動清除,直到經過的時間等於為緩存設置的非活動標志為止。 我尚未為緩存設置非活動標志,因此我希望“ proxy_cache_use_stale錯誤”將阻止緩存刷新,直到經過10分鍾(未定義非活動狀態時為默認值),或者不再返回錯誤。 我誤解了文檔的哪一部分? 應該如何正確完成?

我要參考的Nginx文檔是在這里找到的。 http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.112574977.446076600.1424025436#proxy_cache

您應該使用“ http_500”而不是“錯誤”,請參閱http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream(proxy_cache_use_stale使用與proxy_next_upstream相同的參數)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM