Proxy

Squid 2.7 可以代理 gzip 壓縮的內容嗎

  • October 19, 2013

我們的網路有一個轉發代理,它是 Squid 2.7。這是由第三方為我們管理的。

我們最近注意到,從我們的網路到網路的 http 請求被Accept-Encoding刪除了標頭。這導致我們網路(大約 8000 多台 PC)上的所有 Web 流量都未壓縮,即使每一端的瀏覽器和伺服器都可以使用。

我們已經要求第三方對此進行調查,他們說這是因為 Squid 2.7 不支持壓縮。

我理解這是真的,但我的印像是壓縮發生在網路伺服器而不是代理上。所以…

  1. Squid 2.7 可以代理和/或記憶體 gzip 壓縮的內容嗎?
  2. 如果可以,如何/為什麼配置它以 Accept-Encoding刪除標頭?

如果使用者請求壓縮頁面,Squid 2.7 會記憶體壓縮頁面(頁面的多種編碼)。但是如果使用者請求一個非壓縮頁面,那麼 squid 會轉發一個請求一個非壓縮頁面的請求。然後記憶體它。如果請求了壓縮頁面但記憶體了非壓縮頁面,則非壓縮頁面由 squid 提供。但是,如果先記憶體壓縮頁面,然後記憶體非壓縮頁面,然後請求壓縮頁面,則將從記憶體中提供壓縮頁面。

我發現 squid 將記憶體一個頁面的多個編碼僅當非壓縮頁面沒有被首先記憶體/首先請求時,否則非壓縮頁面將被記憶體,並且由於接受編碼是有條件的,所以沒有理由讓 squid 獲取壓縮頁面,因為該請求對於非壓縮編碼頁面是可以的。

#   TAG: cache_vary
#   When 'cache_vary' is set to off, response that have a
#   Vary header will not be stored in the cache.
#
#Default:
cache_vary on

cache_vary 需要開啟,以便記憶體一個頁面的多個編碼。

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