PHP在Squid中可缓存的动态网页设计

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2008/09/04/phpsquid.html

 

有时我们需要控制主页之类的网页过期时间.但我们比如使用的是Chinacache的CDN,那要怎么样设计才能让他缓存我的内容.

当然,前提要先打开CDN中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成If-Modified-Since .所以我们写程序主要是对If-Modified-Since控制就好了.记的,缓存系统架构中计中最好是后端来控制,所以最好的方法是程序来管理过期.呵,我只会php,就用php写一个,别的程序也是一样

见我下面的程序,呵呵,5分钟过期.

<?php

$headers = apache_request_headers();
$client_time = (isset($headers['If-Modified-Since']) ? strtotime($headers['If-Modified-Since']) : 0);

$now=gmmktime();
$now_list=gmmktime()-60*5;
if ($client_time<$now and $client_time >$now_list){
header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s’, $client_time).’ GMT’, true, 304);
exit(0);
}else{
header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s’, $now).’ GMT’, true, 200);
}

?>
 

3 条留言

我要留言
  • 1 F

    Tom Zheng  |  2008/09/04 17:12 下午  

    既然是动态内容,为什么要CDN缓存呢?

    直接指回realserver就可以了啊。

  • 2 F

    bixuan  |  2008/09/04 17:12 下午  

    试试pecl_http :)

  • 3 F

    admin  |  2008/09/04 17:12 下午  

    有网站有这种需求

(必填)
(必填,绝不公开)