博客在CDN是加了又下蹂午,下了又加。昨天訪問張戈博客學(xué)習(xí)的時候彬碱,感嘆大牛的站優(yōu)化的就是好!驚嘆速度快之余發(fā)現(xiàn)張戈博客的服務(wù)器在國外奥洼,而且配置也不是很高巷疼。(優(yōu)化出奇跡)
網(wǎng)站速度的提升無論對用戶體驗以及對seo都是極好的。在看看我這個1h1m的小弱雞灵奖。(搖頭搖頭)
實際上網(wǎng)站的訪問速度并不是完全依賴于去給服務(wù)器堆硬件配置嚼沿,這方面就包含很多知識了。服務(wù)器地理位置距離瓷患、網(wǎng)站內(nèi)部優(yōu)化骡尽、不同運營商之間的線路解析、緩存cdn分發(fā)等等都決定著網(wǎng)站的速度擅编。當(dāng)然我們可以揚長避短攀细,取長補短。
WordPress套一層CDN提升網(wǎng)站訪問速度爱态。
cdn可以解決不同位置的文件分發(fā)問題谭贪,但我覺得優(yōu)化wordpress網(wǎng)站速度主要還是靠cdn提供的緩存功能,
通過cdn控制臺設(shè)置緩存頁面內(nèi)容锦担,用戶直接訪問到的是cdn層的緩存俭识,在結(jié)合cdn的跨區(qū)域分發(fā)。提速明顯洞渔!
為此套媚,我把博客固定鏈接結(jié)構(gòu)改成了/%post_id%.html,然后在cdn配置緩存,html頁面似乎更利于cdn緩存(這個我也不太懂磁椒,發(fā)現(xiàn)很多大佬都是這樣設(shè)置)
關(guān)于更改固定鏈接后之前的文章鏈接無法訪問堤瘤,可以參考這篇文章:wordpress更改固定鏈接后舊鏈接301跳轉(zhuǎn)當(dāng)前固定連接
wordpress更改固定鏈接后舊鏈接301跳轉(zhuǎn)當(dāng)前固定連接
博客之前用固定鏈接是/archives/%post_id% 鏈接形式:https://www.zmki.cn/archi…
正文開始:
配置騰訊云CDN
注冊騰訊云賬號開通CDN這個不多說。騰訊云CDN
開通之后開通域名衷快,新用戶還送流量包宙橱,可以根據(jù)自己的需求選擇套餐
回源配置:
由于我使用的是騰訊云的服務(wù)器,好像支持什么Range回源配置蘸拔,源站類型我選擇自主回源师郑,源站地址就填寫服務(wù)器ip。
緩存配置
主要是緩存靜態(tài)內(nèi)容调窍,緩存時間我設(shè)置的7天宝冕。
不緩存
后臺/wp-admin
登錄頁面/wp-login.php
靜態(tài)文件.php;.jsp;.asp;.aspx
其他的都設(shè)置緩存
發(fā)布/更新文章、提交/審核評論自動清理騰訊云CDN緩存
把下邊的代碼放到當(dāng)前主題functions.php中(替換代碼里的SecretId 及?$secretKey)
/* 需要填寫你的密鑰邓萨,訪問 https://console.qcloud.com/capi 獲取 SecretId 及 $secretKey */$secretKey='你的secretKey ';$secretId='你的SecretId ';//更新或發(fā)布文章清理本文和首頁CDN緩存add_action('publish_post','Clean_By_Publish',0);//提交評論更新本文CDN緩存add_action('comment_post','Clean_By_Comments',0);//評論被審核更新本文CDN緩存add_action('comment_unapproved_to_approved','Clean_By_Approved',0);//發(fā)布文章更新CDN緩存函數(shù)functionClean_By_Publish($post_ID){global$secretKey,$secretId;$url=get_permalink($post_ID);$action='RefreshCdnUrl';/*要清理的頁面地梨,默認(rèn)包含首頁和文章頁面菊卷,需要清理其他頁面請自行發(fā)揮*/$PRIVATE_PARAMS=array('urls.0'=>'https://www.zmki.cn/',/*提交首頁刷新,修改成自己的網(wǎng)站首頁*/'urls.1'=>$url,);$HttpUrl="cdn.api.qcloud.com";/*除非有特殊說明宝剖,如MultipartUploadVodFile洁闰,其它接口都支持GET及POST*/$HttpMethod="POST";/*是否https協(xié)議,大部分接口都必須為https万细,只有少部分接口除外(如MultipartUploadVodFile)*/$isHttps=true;/*下面這五個參數(shù)為所有接口的 公共參數(shù)扑眉;對于某些接口沒有地域概念,則不用傳遞Region(如DescribeDeals)*/$COMMON_PARAMS=array('Nonce'=>rand(),'Timestamp'=>time(NULL),'Action'=>$action,'SecretId'=>$secretId,);/***********************************************************************************/CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey,$PRIVATE_PARAMS,$isHttps);}//提交評論清理文章CDN函數(shù)functionClean_By_Comments($comment_id){global$secretKey,$secretId;$comment=get_comment($comment_id);$url=get_permalink($comment->comment_post_ID);$action='RefreshCdnUrl';/*參數(shù)*/$PRIVATE_PARAMS=array('urls.0'=>$url,);$HttpUrl="cdn.api.qcloud.com";/*除非有特殊說明赖钞,如MultipartUploadVodFile腰素,其它接口都支持GET及POST*/$HttpMethod="POST";/*是否https協(xié)議,大部分接口都必須為https雪营,只有少部分接口除外(如MultipartUploadVodFile)*/$isHttps=true;/*下面這五個參數(shù)為所有接口的 公共參數(shù)弓千;對于某些接口沒有地域概念,則不用傳遞Region(如DescribeDeals)*/$COMMON_PARAMS=array('Nonce'=>rand(),'Timestamp'=>time(NULL),'Action'=>$action,'SecretId'=>$secretId,);/***********************************************************************************/CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey,$PRIVATE_PARAMS,$isHttps);}//評論被審核清理CDN緩存函數(shù)functionClean_By_Approved($comment){global$secretKey,$secretId;$url=get_permalink($comment->comment_post_ID);$action='RefreshCdnUrl';/*參數(shù)*/$PRIVATE_PARAMS=array('urls.0'=>$url,);$HttpUrl="cdn.api.qcloud.com";/*除非有特殊說明献起,如MultipartUploadVodFile洋访,其它接口都支持GET及POST*/$HttpMethod="POST";/*是否https協(xié)議,大部分接口都必須為https征唬,只有少部分接口除外(如MultipartUploadVodFile)*/$isHttps=true;/*下面這五個參數(shù)為所有接口的 公共參數(shù)捌显;對于某些接口沒有地域概念,則不用傳遞Region(如DescribeDeals)*/$COMMON_PARAMS=array('Nonce'=>rand(),'Timestamp'=>time(NULL),'Action'=>$action,'SecretId'=>$secretId,);/***********************************************************************************/CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey,$PRIVATE_PARAMS,$isHttps);}//請求主函數(shù)总寒,無需改動functionCreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey,$PRIVATE_PARAMS,$isHttps){$FullHttpUrl=$HttpUrl."/v2/index.php";/***************對請求參數(shù) 按參數(shù)名 做字典序升序排列扶歪,注意此排序區(qū)分大小寫*************/$ReqParaArray=array_merge($COMMON_PARAMS,$PRIVATE_PARAMS);ksort($ReqParaArray);/**********************************生成簽名原文**********************************
? ? ? ? * 將 請求方法, URI地址,及排序好的請求參數(shù)? 按照下面格式? 拼接在一起, 生成簽名原文,此請求中的原文為
? ? ? ? * GETcvm.api.qcloud.com/v2/index.php?Action=DescribeInstances&Nonce=345122&Region=gz
? ? ? ? * &SecretId=AKIDz8krbsJ5yKBZQ? ? ·1pn74WFkmLPx3gnPhESA&Timestamp=1408704141
? ? ? ? * &instanceIds.0=qcvm12345&instanceIds.1=qcvm56789
? ? ? ? * ****************************************************************************/$SigTxt=$HttpMethod.$FullHttpUrl."?";$isFirst=true;foreach($ReqParaArrayas$key=>$value){if(!$isFirst){$SigTxt=$SigTxt."&";}$isFirst=false;/*拼接簽名原文時摄闸,如果參數(shù)名稱中攜帶_善镰,需要替換成.*/if(strpos($key,'_')){$key=str_replace('_','.',$key);}$SigTxt=$SigTxt.$key."=".$value;}/*********************根據(jù)簽名原文字符串 $SigTxt,生成簽名 Signature******************/$Signature=base64_encode(hash_hmac('sha1',$SigTxt,$secretKey,true));/***************拼接請求串,對于請求參數(shù)及簽名年枕,需要進(jìn)行urlencode編碼********************/$Req="Signature=".urlencode($Signature);foreach($ReqParaArrayas$key=>$value){$Req=$Req."&".$key."=".urlencode($value);}/*********************************發(fā)送請求********************************/if($HttpMethod==='GET'){if($isHttps===true){$Req="https://".$FullHttpUrl."?".$Req;}else{$Req="https://".$FullHttpUrl."?".$Req;}$Rsp=file_get_contents($Req);}else{if($isHttps===true){$Rsp=SendPost("https://".$FullHttpUrl,$Req,$isHttps);}else{$Rsp=SendPost("https://".$FullHttpUrl,$Req,$isHttps);}}//var_export(json_decode($Rsp,true));returnjson_decode($Rsp,true);}functionSendPost($FullHttpUrl,$Req,$isHttps){$ch=curl_init();curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$Req);curl_setopt($ch,CURLOPT_URL,$FullHttpUrl);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_TIMEOUT,1);if($isHttps===true){curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);}$result=curl_exec($ch);return$result;}//騰訊云cdn緩存刷新配置結(jié)束
API密匙獲褥牌邸:https://console.qcloud.com/capi
在CDN控制臺能查到緩存刷新記錄這說明配置成功
ps.經(jīng)博主測試,PHP7.3不能提交熏兄, PHP7.2及以下的版本可以使用品洛。如果不能提交請切換PHP版本
代碼源自張戈博客,鉆芒修改(原代碼報錯)
原創(chuàng)文章摩桶,如若轉(zhuǎn)載桥状,請注明出處:《WordPress配置騰訊云CDN并實現(xiàn)發(fā)布/更新文章、提交/審核評論自動清理騰訊云CDN緩存》https://www.zmki.cn/3506.html
文章源自?鉆芒博客? ??https://www.zmki.cn/3506.html