本篇文章給大家?guī)砹岁P(guān)于thinkphp5.1的相關(guān)知識,其中主要介紹了cdn是什么?為什么使用它?怎么解決thinkphp5.1 miss緩存未命中問題?感興趣的朋友下面一起來看一下吧,希望對大家有幫助。
thinkphp5.1使用CDN加速-MISS緩存未命中解決
在單獨(dú)給首頁配置CDN加速后,出現(xiàn)了X-Cache: MISS TCP_MISS dirn:-2:-2,MISS也就是緩存沒有被命中。這個問題不是配置錯了,而框架問題。
什么要使用CDN?
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
“cdn簡介 CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。
為什么使用CDN?
CDN就近節(jié)點(diǎn)訪問,提高了網(wǎng)站加載速度,降低延時;能起到分流作用,減輕服務(wù)器負(fù)載,
使用動靜分離提高網(wǎng)站訪問速度。
配置實現(xiàn)
這個呢,我是部署在了生產(chǎn)環(huán)境,實際測試大并發(fā)高流量處理,當(dāng)然了,也有很多的不足。
環(huán)境
服務(wù)器:騰訊云
系統(tǒng):CentOS7
框架:ThinkPHP5.1
使用阿里云OSS+CDN并配置緩存
當(dāng)然還要有經(jīng)過備案的域名。
關(guān)于怎么使用阿里云OSS對象存儲系統(tǒng),Laravel6.x上傳視頻到阿里云Oss對象存儲 這篇文章記錄過。
bucket創(chuàng)建完成后,可以在列表中看到 ‘阿里云 CDN 加速’,點(diǎn)擊這個進(jìn)行相關(guān)的CDN操作,配置完后需要在域名中進(jìn)行解析。
問題
在單獨(dú)給首頁配置CDN加速后,出現(xiàn)了X-Cache: MISS TCP_MISS dirn:-2:-2,MISS也就是緩存沒有被命中。這個問題不是配置錯了,而框架問題。
解決方法如下:
第一步:public/index.php讀取/設(shè)置緩存限制器
<?php namespace think; // 設(shè)置緩存限制 session_cache_limiter('public'); require __DIR__ . '/../thinkphp/base.php'; Container::get('app')->run()->send();
第二步:開啟請求緩存
//?文件位置:?config/app.php 'request_cache'??????????=>?true,
ab壓測
如下壓測是經(jīng)過了CDN+OSS之后的結(jié)果,可以看到qps可以達(dá)到573
$?ab?-c100?-n1000?你的頁面URL This?is?ApacheBench,?Version?2.3? Copyright?1996?Adam?Twiss,?Zeus?Technology?Ltd,?http://www.zeustech.net/ Licensed?to?The?Apache?Software?Foundation,?http://www.apache.org/ Benchmarking?miaosha.nikexu.com?(be?patient) Completed?100?requests Completed?200?requests Completed?300?requests Completed?400?requests Completed?500?requests Completed?600?requests Completed?700?requests Completed?800?requests Completed?900?requests Completed?1000?requests Finished?1000?requests ? Server?Software:????????Tengine Server?Hostname:????????miaosha.nikexu.com Server?Port:????????????80 Document?Path:??????????/ Document?Length:????????774?bytes Concurrency?Level:??????100 Time?taken?for?tests:???1.745?seconds Complete?requests:??????1000 Failed?requests:????????0 Write?errors:???????????0 Total?transferred:??????1403829?bytes HTML?transferred:???????774000?bytes Requests?per?second:????573.16?[#/sec]?(mean) Time?per?request:???????174.472?[ms]?(mean) Time?per?request:???????1.745?[ms]?(mean,?across?all?concurrent?requests) Transfer?rate:??????????785.76?[Kbytes/sec]?received Connection?Times?(ms) ?????????????min??mean[+/-sd]?median???max Connect:???????15???17???1.5?????16??????25 Processing:????18???91?113.4?????71????1195 Waiting:???????18???90?113.4?????71????1195 Total:?????????36??107?113.4?????87????1212 Percentage?of?the?requests?served?within?a?certain?time?(ms) ?50%?????87 ?66%?????99 ?75%????103 ?80%????105 ?90%????120 ?95%????195 ?98%????437 ?99%????834 100%???1212?(longest?request)
在來看看500個并發(fā)的壓測。
ab?-c500?-n10000?你的頁面URL Requests?per?second:????965.61?[#/sec]?(mean) Time?per?request:???????517.806?[ms]?(mean) Time?per?request:???????1.036?[ms]?(mean,?across?all?concurrent?requests) Percentage?of?the?requests?served?within?a?certain?time?(ms) ?50%????257 ?66%????319 ?75%????541 ?80%???1043 ?90%???1102 ?95%???1281 ?98%???1560 ?99%???1821 100%???3771?(longest?request)
通過這個兩個手段,已經(jīng)可以看到還并發(fā)量提供,500的并發(fā)量,80%的用戶可以在1s左右打開。在沒有使用CDN+OSS前,我壓測的結(jié)果是 150的并發(fā),CPU就沖到了90%。使用OSS+CDN的優(yōu)勢就不言而喻了。
推薦學(xué)習(xí):《thinkPHP視頻教程》