本篇文章為大家帶來了關於ThinkPHP5.1的相關知識,其中主要介紹了CDN是什麼?為什麼要使用它?怎麼解決ThinkPHP5.1 MISS快取未命中問題?有興趣的朋友下面一起來看看吧,希望對大家有幫助。
ThinkPHP5.1使用CDN加速-MISS快取未命中解決
在單獨給首頁配置CDN加速後,出現了X-Cache: MISS TCP_MISS dirn:-2:-2,MISS也就是快取沒有被命中。這個問題不是配置錯了,而框架問題。
什麼要使用CDN?
「cdn簡介CDN的全名是Content Delivery Network,即內容分發網路。
為什麼要使用CDN?
##CDN就近節點訪問,提高了網站加載速度,降低延時;能起到分流作用,減輕伺服器負載,使用動靜分離提高網站訪問速度。配置實現
這個呢,我是部署在了生產環境,實際測試大並發高流量處理,當然了,也有很多的不足。環境
#伺服器:騰訊雲端系統:CentOS7框架:ThinkPHP5.1使用阿里雲OSS CDN並且設定快取##當然還要有經過備案的網域名稱。
關於怎麼使用阿里雲OSS物件儲存系統,Laravel6.x上傳影片到阿里雲Oss物件儲存這篇文章記錄過。
bucket建立完成後,可以在列表中看到'阿里雲CDN 加速',點擊這個進行相關的CDN操作,配置完後需要在域名中進行解析。
問題在單獨給首頁配置CDN加速後,出現了X-Cache: MISS TCP_MISS dirn:-2:-2,MISS也就是快取沒有被命中。這個問題不是配置錯了,而框架問題。
#解決方法如下:第一步:public/index.php讀取/設定快取限制器
<?php
namespace think;
// 设置缓存限制
session_cache_limiter('public');
require __DIR__ . '/../thinkphp/base.php';
Container::get('app')->run()->send();
// 文件位置: config/app.php
'request_cache' => true,
#如下壓測是經過了CDN OSS之後的結果,可以看到qps可以達到573
$ ab -c100 -n1000 你的页面URL This is ApacheBench, Version 2.3 <$Revision: 1430300 $> 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個並發的壓測。
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)
透過這個兩個手段,已經可以看到還並發量提供,500的並發量,80%的用戶可以在1s左右打開。在沒有使用CDN OSS前,我壓測的結果是150的並發,CPU就衝到了90%。使用OSS CDN的優勢就不言而喻了。
推薦學習:《
thinkPHP影片教學以上是快速解決ThinkPHP5.1出現MISS快取未命中問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!