原文:https://www.jb51.net/article/118782.htm
前言
Laravel是一個功能強大的框架,組件很多,代碼也很龐大,它的易用方便是犧牲了性能的,即便如此它仍然是一個優秀的框架,但在正式環境下要做好優化提升網站的打開速度。下面這篇文章主要給大家介紹了關於Laravel網站打開速度優化的一些方法技巧,下面話不多說,來一起看看詳細的介紹:
一、關閉debug
打開.env文件,把debug設置為false.
1
2
3
|
APP_ENV=local
APP_DEBUG=false
APP_KEY=base64:sT/aTFeaE13eyao1Raee6jC9Ff+Yle1SE+wtyk0H6B4=
|
二、緩存路由和配置
1
2
3
|
php artisan route:cache
php artisan config:cache
|
三、Laravel優化命令
1
|
php artisan optimize
|
四、composer優化
1
|
sudo composer dump-autoload --optimize
|
五、使用Laravel緩存
使用Laravel的Cache方法緩存內容,有文件緩存,數據庫緩存,redis緩存,使用redis也可以用predis組件,也可以多種緩存方式結合。
1
2
3
|
$lists
= Cache::remember(
'travel.destination.lists'
, 20,
function
() {
return
$this
->destination->getList();
});
|
六、使用CDN
如七牛CDN,每月送你20G流量和20G存儲空間,對於小站來說完全足夠了。
七、使用PHP 7並開啟OPcache
提高PHP 7性能的幾個tips,第一條就是開啟opache,引用下原文:
記得啟用Zend Opcache, 因為PHP7即使不啟用Opcache速度也比PHP-5.6啟用了Opcache快, 所以之前測試時期就發生了有人一直沒有啟用Opcache的事情
我的阿里雲服務器是通過一個叫remi的centos源提供的PHP 7,默認沒裝opcache,用yum list yum70*
命令搜索一下,果然有,於是install下來:
1
|
yum
install
php70-php-opcache.x86_64
|
然后重啟php-fpm,使用service php70-php-fpm restart
命令。(不同的系統和環境根據自己的情況安裝和開啟opache)
新建一個php文件,用phpinfo()函數顯示php.ini信息,如果可以找到OPcache項,說明成功啟用了。安裝和啟用PHP 7,就是給PHP 7再加一個翅膀!
八、nginx開啟gzip壓縮
在服務器Nginx開啟gzip壓縮是優化網站性能的方法之一,可以有效減少服務器帶寬的消耗,缺點是會增大CPU的占用率,但是很多時候CPU往往是空閑最多的。
引用nginx官網的介紹:
The ngx_http_gzip_module module is a filter that compresses responses using the “gzip” method. This often helps to reduce the size of transmitted data by half or even more.
在Nginx開啟gzip壓縮
打開nginx.conf文件,添加如下:
1
2
3
4
5
6
7
|
gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types text/plain application/x-javascript application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
|
gzip參數介紹
GZIP ON|OFF
開啟或者關閉gzip模塊
GZIP_MIN_LENGTH 1000
設置允許壓縮的頁面最小字節數,頁面字節數從header頭中的Content-Length中進行獲取。默認值是0,不管頁面多大都壓縮。建議設置成大於1k的字節數,小於1k可能會越壓越大。 即: gzip_min_length 1024
GZIP_PROXIED EXPIRED NO-CACHE NO-STORE PRIVATE AUTH;
Nginx作為反向代理的時候啟用,開啟或者關閉后端服務器返回的結果,匹配的前提是后端服務器必須要返回包含”Via”的 header頭。
GZIP_TYPES TEXT/PLAIN APPLICATION/XML;
匹配MIME類型進行壓縮,(無論是否指定)”text/html”類型總是會被壓縮的。
通過瀏覽器判斷是否開啟gzip壓縮
如firefox,打開一個網頁,打開debug控制欄,如圖:
Content-Encoding字段是gzip,表示該網頁是經過gzip壓縮的。
這不僅僅是針對Laravel網站的性能優化方法,其中很多是通用的網站性能優化的方法,當然還有很多可以優化的地方。
總結
以上就是這篇文章的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。