2016-11-16 127 views

回答

6

REQ:只要它在上光油到達請求值。

bereq:請求轉到後端。來自req的所有變量被自動分配到bereq。但是,這些值可能略有不同,因爲Varnish可能會修改客戶端請求。例如,來自客戶端的HEAD請求可能會轉換爲對後端的GET請求。

beresp:後端respose。 beresp中的任何更改都會影響respobj這是緩存的對象。 提示:如果您想要獲取有關對象的任何其他信息,請將其設置爲beresp

響應:傳遞給客戶端的響應。所有的beresp值被傳遞到resp

解釋完所有名稱後得出結論:req.ttl是從請求中接收到的TTL,除非您對其進行了不同的配置,否則就意味着什麼都沒有。 beresp.ttl是要設置您的對象的TTL的那個。

至於什麼是最好的緩存,清漆已獲得最大年齡,並將其設置爲beresp.ttl。所以最終沒有區別。採用這種方法的困難在於,一些網絡應用程序不能正確對待並最終總是發送nocache,導致清漆無法緩存。在這些情況下,您應該忽略beresp.http.cache-control中的內容並設置您自己的TTL。

一些相關的閱讀材料可以在Varnish Book subroutines section中找到。

+0

「最終總是發送nocache,導致Varnish無法緩存」 - 或者可能取消設置並設置我的緩存控制,對不對? 並且可以關於req.ttl的更多細節?因爲你寫了「這意味着什麼,除非你配置不同」。這是什麼意思? 其餘的,非常感謝,詳盡的答案。 –

+0

你說得對。 關於req.ttl,它來自請求者,它不是由你的應用程序或清漆設置的東西,大多數時候它應該被忽略,除非你希望你的請求者能夠設置對象ttl。 – alejdg

+0

,除非你想讓你的請求者能夠設置對象ttl - 我想理解的主要內容:)非常感謝! –