这篇文章主要介绍了PHP文件生成的图片无法使用CDN缓存的解决 *** ,这里的PHP生成图片是指src地址是一个PHP文件的图片,如果不做CDN,服务器的压力会非常大,本文就讲解了如何加进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.1 304 Not Modified); exit; } } header(Last-Modified: . gmdate(D, d M Y H:i:s, strtotime('2011-1-1')). GMT); //输出etag头 header('etag:' . md5($this-image)); header('Cache-Control:max-age=2592000');echo $this-image; 其中http头HTTP_IF_NONE_MATCH,一般是服务器返回的对某一URL的标识,一般用MD5计算,这样我们检测MD5值对不对,相同就可以返回304了; PS: 刚开始抓了半天包,只看到服务端返回的Etag标签,没看到客户端的http头中If-None-Match,害得在fastcgi.conf.default 中加入如下代码: 复制代码 代码如下: fastcgi_param CACHE_ETAG $http_if_none_match; 一打印$_SERVER,根本就没有CACHE_ETAG这个变量,看来nginx都会将相关的HTTP头放到$_SERVER变量中,也加深了http协议的了解
宝宝肚子里如果有蛔虫话会影响宝宝的生理健康。宝宝平时营养不好比较瘦就要考虑是不是肚子里有蛔虫啦。蛔虫寄生虫也是因为孩子的卫生习惯的问题。那么孩子卫肚子有蛔虫该怎么办呢。下面友谊长存小编就来和大家说一说...
RT,别的飞机票的呢,返程是否一样价格? 深圳到北京的火车票 K106 深圳-北京西 1天4小时47分钟 硬座:257元 硬卧下:467元T108 详情 深圳-北京西 14:48-13:48...
一、入侵网络高手怎么找黑客 1、接单黑客他们中的大多数都是谎言。入侵网络高手技金融在公司中成功的人必须在很大程度上取决于他们在使用公司资源方面的沟通技能。黑客网站我想可能是他。 2、当您连接到Int...
光影传情,全球电影人共相聚。12月5日,由中央广播电视总台与海南省人民政府共同主办的第三届海南岛国际电影节在三亚海棠湾开幕。 中宣部副部长、中央广播电视总台台长...
新华社华盛顿11月11日电 美国农业部日前对媒体表示,自8月份以来美国多个州的养殖场已有共计超过1.5万只貂死于新冠病毒。当局正在监测相关养殖场并进行隔离。 犹他州是8月份第一个确认貂感染新...
-p界说暗码元素 ws.onmessage = function(datad) {内网:为了能够从履行的payload接纳衔接,需求以下进程: 进一步进犯方式首要是将恶意代...