Http
清漆似乎沒有記憶體
我已經在文件伺服器前面設置了一個 Varnish 記憶體鏡像,但它似乎無休止地從我的文件伺服器重新下載數據。
總共有大約 100GB 的數據,但到目前為止 Varnish 已經從我的文件伺服器下載了 800GB。
我正在使用 Varnish 附帶的預設 VCL 文件,文件伺服器提供的文件的響應標頭類似於以下內容:
HTTP/1.1 200 OK Cache-Control: max-age=290304000, public Content-Type: image/jpeg Expires: Wed, 29 Dec 2010 21:38:33 GMT Server: Microsoft-IIS/7.0 E-Tag: "8b4723296ab697530768f18b1378b269" Content-Disposition: inline; filename=image046.jpg; X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Thu, 23 Dec 2010 05:38:33 GMT Content-Length: 100592
我開始使用以下選項進行清漆:
varnish/sbin/varnishd -a 0.0.0.0:80 -f varnish/etc/varnish/default.vcl -s file,varnish/var/lib/varnish/varnish_storage.bin,100G
sub vcl_recv { if (req.url ~ "\.(cur|gif|jpg|jpeg|swf|css|js|flv|mp3|mp4|pdf|ico|png)(\?.*|)$") { unset req.http.cookie; unset req.http.Accept-Encoding; unset req.http.Vary; } }
如果您的請求包含 cookie,它們將預設傳遞到後端。刪除編碼和變化將使事情更加規範化,這樣您就不需要在記憶體中維護一些圖像副本。另外,我認為 100G 對於您的備份儲存可能有點過多,您可能會考慮更接近機器中的 RAM 量。