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

Sep 4th, 2008

转载本站文章请注明,转载自:扶凯[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);
}

?>
 

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. Tom Zheng
    Sep 4th, 2008 at 17:59
    Reply | Quote | #1

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

    直接指回realserver就可以了啊。

  2. bixuan
    Sep 4th, 2008 at 19:36
    Reply | Quote | #2

    试试pecl_http :)

  3. admin
    Sep 4th, 2008 at 20:29
    Reply | Quote | #3

    有网站有这种需求