PHP文件生成的图片无法使用CDN缓存的解决方法
今天发现线上有个问题,线上一个图片域名,在前端已经加了CDN缓存,不落缓存,则用PHP动态实现图片缩放,但经PHP处理过的图片输出后,每次都要从后端读取,后端服务器压力瞬间增加,经分析,PHP中没有作304的处理,
HTTP的原理是这样的,每次请求到服务器后,服务端检测有没有修改,如没有修改,可以直接返回一个304的状态码,这样就用客户端的缓存了,CDN的原理就是如此,如果设置了304,就会将相应的URL进行缓存起来;
相关代码如下:
//检测有没改变
if(isset($_SERVER['HTTP_IF_NONE_MATCH'])){
$etag=$_SERVER['HTTP_IF_NONE_MATCH'];
if(md5($this->image)===$etag){
header("HTTP/1.1304NotModified");
exit;
}
}
header("Last-Modified:".gmdate("D,dMYH:i:s",strtotime('2011-1-1'))."GMT"); //输出etag头 header('etag:'.md5($this->image)); header('Cache-Control:max-age=2592000');echo$this->image;
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短