最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP文件生成的圖片無法使用CDN緩存的解決方法

 更新時間:2015年06月20日 10:18:27   投稿:junjie  
這篇文章主要介紹了PHP文件生成的圖片無法使用CDN緩存的解決方法,這里的PHP生成圖片是指src地址是一個PHP文件的圖片,如果不做CDN,服務(wù)器的壓力會非常大,本文就講解了如何加進CDN的方法,需要的朋友可以參考下

今天發(fā)現(xiàn)線上有個問題,線上一個圖片域名,在前端已經(jīng)加了CDN緩存,不落緩存,則用PHP動態(tài)實現(xiàn)圖片縮放,但經(jīng)PHP處理過的圖片輸出后,每次都要從后端讀取,后端服務(wù)器壓力瞬間增加,經(jīng)分析,PHP中沒有作304的處理,

HTTP的原理是這樣的,每次請求到服務(wù)器后,服務(wù)端檢測有沒有修改,如沒有修改,可以直接返回一個304的狀態(tài)碼,這樣就用客戶端的緩存了,CDN的原理就是如此,如果設(shè)置了304,就會將相應(yīng)的URL進行緩存起來;

相關(guān)代碼如下:

復(fù)制代碼 代碼如下:

//檢測有沒改變
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,一般是服務(wù)器返回的對某一URL的標識,一般用MD5計算,這樣我們檢測MD5值對不對,相同就可以返回304了;

PS:

剛開始抓了半天包,只看到服務(wù)端返回的Etag標簽,沒看到客戶端的http頭中If-None-Match,害得在fastcgi.conf.default 中加入如下代碼:

復(fù)制代碼 代碼如下:

fastcgi_param  CACHE_ETAG    $http_if_none_match;

一打印$_SERVER,根本就沒有CACHE_ETAG這個變量,看來nginx都會將相關(guān)的HTTP頭放到$_SERVER變量中,也加深了http協(xié)議的了解

相關(guān)文章

  • PHP7 新特性詳細介紹

    PHP7 新特性詳細介紹

    本文主要介紹PHP7 新特性的資料,這里整理了詳細的資料及簡單實現(xiàn)代碼幫助大家學習參考新特性的知識,有興趣的朋友可以參考下
    2016-09-09
  • php中call_user_func函數(shù)使用注意事項

    php中call_user_func函數(shù)使用注意事項

    這篇文章主要介紹了php中call_user_func函數(shù)使用注意事項,較為詳細的講述了call_user_func函數(shù)的用法實例與注意事項,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • php htmlspecialchars加強版

    php htmlspecialchars加強版

    加強版htmlspecialchars
    2010-02-02
  • PHP簡單實現(xiàn)DES加密解密的方法

    PHP簡單實現(xiàn)DES加密解密的方法

    這篇文章主要介紹了PHP簡單實現(xiàn)DES加密解密的方法,涉及php中mcrypt_encrypt與mcrypt_decrypt方法的相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • 對象失去焦點時自己動提交數(shù)據(jù)的實現(xiàn)代碼

    對象失去焦點時自己動提交數(shù)據(jù)的實現(xiàn)代碼

    生產(chǎn)線上,提升輸入員輸入效率,在沒有購買到Bar code槍之前,需要修改程序,即是說當mouse光標離開TextBox之后,數(shù)據(jù)自動提交到數(shù)據(jù)庫中
    2012-11-11
  • 提示Trying to clone an uncloneable object of class Imagic的解決

    提示Trying to clone an uncloneable object of class Imagic的解決

    使用網(wǎng)上流傳的一個程序?qū)崿F(xiàn)pdf截圖為png,需要使用Imagic擴展,安裝后出現(xiàn)Trying to clone an uncloneable object of class Imagic提示,下面是具體的解決方法分享。
    2011-10-10
  • 淺談json_encode用法

    淺談json_encode用法

    這邊文章主要向我們簡單介紹了下json_encode的使用方法,非常簡單實用,這里推薦給大家。
    2015-03-03
  • PHP實現(xiàn)支持GET,POST,Multipart/form-data的HTTP請求類

    PHP實現(xiàn)支持GET,POST,Multipart/form-data的HTTP請求類

    這篇文章主要介紹了PHP實現(xiàn)支持GET,POST,Multipart/form-data的HTTP請求類,包括了連接與處理方式及相關(guān)的技巧,需要的朋友可以參考下
    2014-09-09
  • ThinkPHP實現(xiàn)定時任務(wù)的操作步驟

    ThinkPHP實現(xiàn)定時任務(wù)的操作步驟

    定時任務(wù)就是在特定的時間點執(zhí)行一些特定的任務(wù),比如,每天晚上12點自動清空數(shù)據(jù)庫,或者每分鐘檢查一次服務(wù)器資源使用情況,那么,如何使用ThinkPHP來實現(xiàn)這些定時任務(wù)呢?本文小編給大家介紹了ThinkPHP實現(xiàn)定時任務(wù)的操作步驟,需要的朋友可以參考下
    2024-09-09
  • 10 個經(jīng)典PHP函數(shù)

    10 個經(jīng)典PHP函數(shù)

    這篇文章主要介紹了php中的10個比較經(jīng)典的函數(shù),不太常見,可以滿足有特殊需求的朋友
    2013-10-10

最新評論

安图县| 交城县| 南昌县| 海盐县| 论坛| 涞源县| 寻乌县| 湛江市| 安达市| 高台县| 高清| 海伦市| 轮台县| 永顺县| 福海县| 电白县| 麟游县| 兴安县| 盐亭县| 萨嘎县| 巧家县| 陕西省| 海南省| 陆丰市| 五常市| 黄大仙区| 瑞金市| 西丰县| 迭部县| 揭阳市| 曲松县| 车致| 涟水县| 丰都县| 大庆市| 湛江市| 万源市| 丰镇市| 兰考县| 郯城县| 禹城市|