欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2015年06月20日 10:18:27   投稿:junjie  
這篇文章主要介紹了PHP文件生成的圖片無法使用CDN緩存的解決方法,這里的PHP生成圖片是指src地址是一個PHP文件的圖片,如果不做CDN,服務(wù)器的壓力會非常大,本文就講解了如何加進(jìn)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進(jìn)行緩存起來;

相關(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的標(biāo)識,一般用MD5計算,這樣我們檢測MD5值對不對,相同就可以返回304了;

PS:

剛開始抓了半天包,只看到服務(wù)端返回的Etag標(biāo)簽,沒看到客戶端的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)文章

  • PHP中SESSION使用中的一點(diǎn)經(jīng)驗總結(jié)

    PHP中SESSION使用中的一點(diǎn)經(jīng)驗總結(jié)

    最近在網(wǎng)上的交流中發(fā)現(xiàn)大家對SESSION的使用上有很多誤區(qū),本質(zhì)上就是不了解SESSION的工作原理
    2012-03-03
  • PHP用戶管理中常用接口調(diào)用實例及解析(含源碼)

    PHP用戶管理中常用接口調(diào)用實例及解析(含源碼)

    本文主要介紹了PHP用戶管理中常用接口調(diào)用實例及解析(含源碼),具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • PHP 輸出緩存詳解

    PHP 輸出緩存詳解

    Output Control 函數(shù)可以讓你自由控制腳本中數(shù)據(jù)的輸出。它非常地有用,特別是對于:當(dāng)你想在數(shù)據(jù)已經(jīng)輸出后,再輸出文件頭的情況。
    2009-06-06
  • 淺談Swoole并發(fā)編程的魅力

    淺談Swoole并發(fā)編程的魅力

    PHP語言是一個短生命周期的Web編程語言,很多PHPer已經(jīng)形成了fpm下編程的思維定勢。實際上在Swoole出現(xiàn)之后,這種串行化編程的模式早已被打破。使用Swoole完全可以輕易實現(xiàn)更靈活的并發(fā)編程。
    2021-05-05
  • php 格式化數(shù)字的時候注意數(shù)字的范圍

    php 格式化數(shù)字的時候注意數(shù)字的范圍

    因為 數(shù)據(jù)庫中 id 可能會很大 如果使用%d的話,就可能出現(xiàn)因為超出了范圍,而到不到正確的結(jié)果。所以,個人建議 對id進(jìn)行格式化的時候 使用%.0f 比 %d 要 好的多。
    2010-04-04
  • php獲得網(wǎng)站訪問統(tǒng)計信息類Compete API用法實例

    php獲得網(wǎng)站訪問統(tǒng)計信息類Compete API用法實例

    這篇文章主要介紹了php獲得網(wǎng)站訪問統(tǒng)計信息類Compete API用法,實例分析了php使用curl獲取Compete統(tǒng)計網(wǎng)站信息的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • php 5.4 全新的代碼復(fù)用Trait詳解

    php 5.4 全新的代碼復(fù)用Trait詳解

    本文給大家分享的是php5.4提供的全新的代碼復(fù)用的新特性Trait,下面我們就來詳細(xì)探討下Trait的使用
    2017-01-01
  • PHP編寫登錄驗證碼功能 附調(diào)用方法

    PHP編寫登錄驗證碼功能 附調(diào)用方法

    這篇文章主要介紹了PHP編寫登錄驗證碼功能,文末附調(diào)用方法,并包含隨機(jī)字符函數(shù),和GD庫畫圖函數(shù),感興趣的小伙伴們可以參考一下
    2016-05-05
  • 微信公眾號開發(fā)之微信公共平臺消息回復(fù)類實例

    微信公眾號開發(fā)之微信公共平臺消息回復(fù)類實例

    這篇文章主要介紹了微信公眾號開發(fā)之微信公共平臺消息回復(fù)類,給出了其完整實例,并附有注釋說明便于理解與運(yùn)用,對于微信公眾號的開發(fā)來說非常具有參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • php支付寶接口用法分析

    php支付寶接口用法分析

    這篇文章主要介紹了php支付寶接口用法,以實例形式較為詳細(xì)的分析了php支付寶接口的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01

最新評論