我正在使用Varnish緩存第一次 並沒有任何喜悅讓它按我的意願工作。使用session_start()時varnish緩存不緩存PHP頁面
我的問題似乎很簡單。
所有我想要的.php頁面被緩存。
到目前爲止,每個.php請求總是會傳遞清漆 緩存並且會觸發我的apache Web服務器。
問題出在cookie和調用session_start();
沒有在session_start()=緩存 用在session_start()=沒有緩存
現在的文檔是很簡單的理解 ,但我已經嘗試和失敗嘗試。當我添加一個對session_start()=的調用=不需要更多緩存時,儘快 。
下面是示例HTML瓦特/ PHP:
<?php
session_start();
?>
<html>
<head>
</head>
<body>
<?php echo date('Y-m-d H-i-s'); ?>
</body>
</html>
這是我非常乾淨和簡單的清漆default.vcl
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
unset req.http.Cookie;
return (lookup);
}
sub vcl_fetch {
if (beresp.http.Set-Cookie) {
unset beresp.http.Set-Cookie;
return (deliver);
}
}
這應該由客戶端和服務器 並取消設置的Cookie確實似乎這樣做。當螢火 在FireFox調試,我可以看到的Set-Cookie和Cookie的HTTP頭 是不是有當我使用這個default.vcl
下面是Firefox的HTTP頭:
響應頭:
HTTP/1.1 200 OK
Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.3-7
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html
Content-Length: 192
Date: Wed, 23 Feb 2011 01:34:17 GMT
X-Varnish: 2052563421
Age: 0
Via: 1.1 varnish
Connection: keep-alive
Request Headers:
GET /test.php HTTP/1.1
Host: xshare.com.local
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cache-Control: max-age=0
我只是不能看到我要去哪裏錯了。 我修了2個小時,在.vcl配置文件中添加/更改並刪除了 行和變體。
任何人都可以提供任何建議嗎?
很多謝謝。
如果您不從beresp中去除set-cookies,您將爲所有用戶緩存相同的cookies! – matheuzzy 2016-03-30 07:18:04
整個會議的重點是它對用戶來說是唯一的 - 這就是爲什麼清漆不會默認緩存它們, – matpol 2016-07-13 08:53:13