Apache-2.4

清漆記憶體已啟用,但仍會出現 age: 0 in header

  • August 17, 2019

我已經在我的伺服器上與 apache 一起安裝了清漆。它是一個 SSL 站點。所以我使用 apache 與清漆進行 SSL 終止。問題是當我使用 curl -I 命令時,標題顯示年齡總是大於 0。當我使用https://isvarnishworking.uk測試我的網站時也是如此但是,當我從瀏覽器中看到標題時,它總是顯示年齡為0。我已經嘗試了一切。我什至在一個僅限 http 的網站上嘗試過。還是在網路瀏覽器中,年齡顯示為0

我使用的指南:https ://bash-prompt.net/guides/apache-varnish/

這些是標題

接受範圍:字節
訪問控制允許來源:*
年齡:0
內容編碼:gzip
內容長度:7128
內容類型:文本/html;字元集=UTF-8
日期:2019 年 8 月 15 日星期四 05:37:53 GMT
最後修改時間:2019 年 8 月 15 日星期四 04:25:12 GMT
伺服器:Apache/2.4.29 (Ubuntu)
狀態:200
變化:X-Forwarded-Proto,Accept-Encoding
通過:1.1 清漆(清漆/5.2)
x清漆:65690

編輯:這是我使用 curl -v 127.0.0.1:8080 時得到的標題

重建 URL 至:127.0.0.1:8080/
正在嘗試 127.0.0.1...
TCP_NODELAY 設置
連接到 127.0.0.1 (127.0.0.1) 埠 8080 (#0)
獲取/HTTP/1.1
主機:127.0.0.1:8080
使用者代理:curl/7.58.0
接受: */*
HTTP/1.1 200 正常
日期:2019 年 8 月 15 日星期四 09:58:23 GMT
伺服器:Apache/2.4.29 (Ubuntu)
關聯: ; rel="https://api.w.org/", https://arcadesite.io/>; rel=短連結
變化:接受編碼
訪問控制允許來源:*
內容類型:文本/html;字元集=UTF-8
X-清漆:491654 524537
年齡:62
通過:1.1 清漆(清漆/5.2)
接受範圍:字節
內容長度:28467
連接:保持活動

為什麼您在瀏覽器中沒有得到相同的結果,而且curl通常只有一個 - cookie。

Varnish 為您做了一些預防措施,並在存在 cookie 時繞過記憶體(由後端設置,或者當您通過瀏覽器發送時)。

在您的情況下,您的瀏覽器很可能發送了一個Cookie:請求(可以在 Chrome 開發工具的“網路”選項卡中輕鬆驗證)。

為了讓 Varnish 完成它的工作,典型的解決方案是配置它以在沒有必要的 cookie 存在時剝離所有 cookie,例如vcl_recv

if (req.http.cookie !~ "your-app-cookie-name") {
   unset req.http.cookie;
}

這將只your-app-cookie-name在 cookie 是發送的 cookie 之一時處理通過 cookie。對於其他情況(例如使用者未登錄,Javascript 跟踪腳本可能需要 cookie,因此對於 Varnish 和後端正常工作都不是必需的)。

如果您的應用程序為每個頁面發送“必要”cookie(經常引用),您將需要調整您的應用程序(最佳路線,例如PHPSESSID僅在登錄頁面發送 cookie)和/或調整 Varnish 配置以在特定頁面上忽略它以增加記憶體命中率。

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