Nginx系列(十六) HTTP Vary機制

2021-09-24 09:17:05 字數 822 閱讀 6274

一、概念

apache在響應頭中返回了乙個vary:accept-encoding ,則squid在儲存快取檔案時需要將「我的瀏覽器」發出的請求頭資訊中的accept-encoding欄位的值(大多情況就是gzip,deflate之類的)作為快取key的一部分,因此對於不同的accept-encoding字段值,都需要儲存不同的檔案。

二、請求階段

在通過key值獲取到快取檔案後(ngx_http_file_cache_read),如果快取頭包含vary資訊,則計算該請求的variant,如果計算結果和快取頭中的variant值不一致,說明該節點不匹配。需要將variant值作為key,重新查詢快取節點(如果不存在則新建節點,將variant儲存為key)。並設定r->cache->secondary位,表明該請求的是乙個variant變化了的節點。

if (h->vary_len) 

}

三、響應階段(ngx_http_file_cache_set_header)
/*根據響應vary和請求,生成variant*/

if (!c->secondary)

/*如果新生成的variant,和儲存的key(實際是舊節點的variant)一致,

則說明響應vary未變化,只是請求variant發生變化,那麼儲存該variant作為key的節點。否則,說明

響應vary發生了變化,更新舊節點*/

Nginx系列(八 nginx日誌)

remote addr,http x forwarded for 記錄客戶端ip位址 remote user 記錄客戶端使用者名稱 request 記錄請求的url和http協議 status 記錄請求狀態 body bytes sent 傳送給客戶端的位元組數,不包括響應頭的大小 該變數與apac...

Nginx系列 初識

nginx 是乙個開源的,高效能的http和反向 伺服器,同時也提供了imap pop3 smtp服務,將其源 以類bsd許可的形式發布,因它的穩定性 豐富的功能集 示例配置檔案和低系統資源的消耗而聞名。反向 和負載均衡 我們先來看看什麼是正向 正向 區域網中的電腦使用者想要直接訪問網路是不可行的,...

linux系列(十六) which命令

1 命令格式 which 可執行檔名稱 2 命令功能 which指令會在path變數指定的路徑中,搜尋某個系統命令的位置,並且返回第乙個搜尋結果。3 命令引數 n 指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。p 與 n引數相同,但此處的包括了檔案的路徑。w 指定輸出時字段的寬度。v ...